gpt4 book ai didi

Android SwipeListView 检测按钮按下 backView

转载 作者:行者123 更新时间:2023-11-30 02:38:30 24 4
gpt4 key购买 nike

您好,我有一个 SwipeListView,它有一个包含两个按钮的后 View 。我遇到的问题是 View 是在我的 listAdapter 中创建的,所以如果我在按钮上放置一个 onClickListener,它只会获取数组中最后的项目。所以我要做的是检测在后 View 中按下了哪个按钮以及在数组中的什么位置。有谁知道如何做到这一点?

这是我的布局项 xml,它具有前 View 和后 View ,您可以看到后 View 包含两个按钮

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<RelativeLayout
android:id="@+id/back"
android:tag="back"
android:background="@color/grey"
android:layout_width="match_parent"
android:layout_height="80dp"
>

<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:id="@+id/delete_button"
android:text="delete"
android:background="@drawable/pink_sel"
android:layout_alignParentRight="true"
android:textColor="@color/white"
android:drawableTop="@drawable/ic_delete"
android:padding="12dp"
android:textSize="12sp"
android:gravity="center"
/>

<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:id="@+id/mark_as_read"
android:text="mark as read"
android:background="@drawable/pink_sel_rev"
android:layout_toLeftOf="@+id/delete_button"
android:textColor="@color/white"
android:drawableTop="@drawable/ic_read"
android:paddingTop="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textSize="12sp"
android:gravity="center"


/>


</RelativeLayout>

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="80dp"
android:background="@drawable/listitem"
android:id="@+id/front"
>


<ImageView
android:id="@+id/read"
android:layout_width="5dp"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:background="@color/pink"
/>

<TextView
android:id="@+id/msg_date"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/msg_title"
android:layout_marginRight="20dp"
android:layout_alignParentRight="true"
android:ellipsize="end"
android:lines="1"
android:textColor="@color/darkgrey"
android:textSize="12sp"
android:paddingTop="10dp"
android:gravity="right"/>

<TextView
android:id="@+id/msg_title"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/read"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/read"
android:ellipsize="end"
android:lines="1"
android:textColor="@color/darkgrey"
android:textSize="20sp"
android:paddingTop="10dp"/>

<TextView
android:id="@+id/msg_subtitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/msg_title"
android:layout_alignLeft="@+id/msg_title"
android:textSize="14sp"
android:textColor="@color/darkgrey"
android:lines="2"
android:ellipsize="end"
android:paddingBottom="10dp" />

</RelativeLayout>

</FrameLayout>

在我的适配器中,我正在为 View 设置点击监听器

markAsRead.setOnClickListener(new View.OnClickListener() { 
public void onClick(View arg0) {
Log.v("LOG","Array position = " + position);
})};

我遇到的问题是,虽然它确实检测到点击,但位置始终是数组中的最后一项,所以如果我的数组中有 5 个项目,无论我点击哪个,位置总是 4,我需要它能够获取我单击的项目的位置,以便我可以检索和编辑该位置的数据

最佳答案

您尝试过使用 setTag 吗?

也就是在你的适配器问题的getView中

markAsRead.setTag(TheObjectYouWantToEdit) 

然后在 onClick 监听器中

TheObjectYouWantToEdit edit = arg0.getTag() 

关于Android SwipeListView 检测按钮按下 backView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26143324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com