在ListView中获取位置
我使用ListView显示多个项目。 下面我row.xml:在ListView中获取位置
<TextView android:text="text"
android:id="@+id/tvViewRow"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
<Button android:text="Click me!"
android:id="@+id/BtnToClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="myClick">
</Button>
而且我在下面活动定义了MyClick:
public void myClick (View v) {
LinearLayout vwParentRow = (LinearLayout)v.getParent();
//How to get the position
}
如何知道其位置BUTTOM被点击? 这个位置的意思与onListItemClick的方法相同。
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
}
尝试
public void DetailClick(View v) {
ListView lv = getListView();
int position = lv.getPositionForView(v);
}
非常感谢你!为什么这些信息如此隐藏? – user1862770 2015-04-14 07:44:50
如果我正确理解您的问题,您在ListView
的每一行中都有一个按钮,并且您想知道哪一行接收到按钮单击。你在按钮上做什么setOnClickListener()
?我问这个问题的原因是 - 如果你为每个按钮设置了OnClickListener
,你已经知道该按钮的位置。
我在xml中设置了onClick =“myClick”。 – brian 2012-02-01 09:42:37
并定义myClick的新方法 – brian 2012-02-01 09:42:59
糟糕对不起,我错过了这一点。 – curioustechizen 2012-02-01 09:44:02
你可以试试这个。
第1步:在您的自定义适配器
@Override
public view getView(int position, View convertView, ViewGroup parent){
.......//Perform your logic
convertView.findViewById(R.id.BtnToClick).setTag(position);
return convertView;
}
步骤2:在的onclick监听
public void myClick (View v) {
LinearLayout vwParentRow = (LinearLayout)v.getParent();
position=(Integer) v.getTag();
}
完美的解决方案!谢谢! – Nick 2013-11-12 08:40:58
这个问题已经被问过,请提前查找问题张贴。 – JoxTraex 2012-02-01 09:05:54