我有一个列表视图,每行有 2 种可能的布局。
在为每一行实现我的 onClick 侦听器时,我试图找到最有效的方法来确定单击了哪种类型的行,以便从中获取数据。
还有比这更有效的方法吗?我想访问该getItemViewType(position)
功能,但我无法从以下位置成功访问它parent
:
// listening to single list item on click
myListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// selected item's TextView
// if the first view is null, it must be the other kind
TextView tView = null;
if(view.getId() == R.list.layout_a) tView = (TextView) view.findViewById(R.list.text_a);
else tView = (TextView) view.findViewById(R.list.text_b);
//DO STUFF AND LAUNCH ACTIVITY
}
});
布局 - 这是一个过于简化的示例,但我需要知道单击的行是否使用R.list.text_a
或R.list.text_b
. 我可以给根 LinearLayout 一个android:id=
属性吗?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+list/layout_a"
android:layout_width="fill_parent"
android:layout_height="100dip"
<TextView
android:id="@+list/text_a"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18dip" />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+list/layout_b"
android:layout_width="fill_parent"
android:layout_height="100dip"
<TextView
android:id="@+list/text_b"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18dip" />
</LinearLayout>