我有一个自定义的视图用于自定义ListAdapter中的每一行,我正在尝试执行onClick操作并获取单击来源的列表中的行位置。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:paddingLeft="10dip" android:id="@+id/itemRoot" android:clickable="false">
<TextView android:layout_width="wrap_content" android:text="TextView"
android:layout_height="wrap_content" android:id="@+id/itemTxt"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"></TextView>
<TextView android:layout_toRightOf="@+id/itemTxt" android:text="TextView"
android:layout_height="wrap_content" android:layout_alignBottom="@+id/itemTxt"
android:id="@+id/amountTxt" android:paddingLeft="6dip"
android:layout_centerVertical="true" android:layout_width="match_parent"></TextView>
<ImageView android:id="@+id/delBtn" android:layout_height="wrap_content"
android:src="@drawable/delete" android:layout_width="wrap_content"
android:layout_alignParentRight="true" android:paddingRight="10dip"
android:layout_centerVertical="true"></ImageView>
</RelativeLayout>
我想知道如何在点击TextView或ImageView时获取它们所在的列表行。我尝试使用OnItemClickListener,可以获取点击来自哪一行。但是,一旦我为视图注册了一个OnClick监听器,onItemClicked()方法就被跳过了,直接执行onClick()方法,但是我不知道如何获取视图所在的行位置(至少我不知道如何获取)。如果将视图的clickable设置为false,则会调用onItemClicked并尝试手动调用给定视图上的performClick()。但是这仅适用于根元素(RelativeLayout),如果点击来自布局内部的TextView,则无法传播点击。我真的无法想出如何同时获取列表中的位置和执行onClick操作。欢迎任何想法。 Alex
+
符号:android:layout_toRightOf="@id/itemTxt"
和android:layout_alignBottom="@id/itemTxt"
。当为视图创建新的id时(因此在android:id
属性的值中),使用"@+id/itemTxt"
。 - rekaszeru