在Activity
我有两个ListViews
,但现在我必须检测ListView
用户点击了什么。
我为每个adapters
添加了setOnItemClickListener(this);
和ListView
。
@Override
public void onItemClick(AdapterView<?> a, View v, int i, long l) {
switch (v.getId()) {
case R.id.list_1:
Toast.makeText(this, "111111111", 0).show();
break;
case R.id.list_2:
Toast.makeText(this, "222222222", 0).show();
break;
}
}
但是v.getId()
返回-1
答案 0 :(得分:4)
使用a.getId()
代替v.getId()
我的意思是使用AdapterView<?> a
switch (a.getId()) {
case R.id.list_1:
Toast.makeText(this, "111111111", 0).show();
break;
case R.id.list_2:
Toast.makeText(this, "222222222", 0).show();
break;
}
答案 1 :(得分:1)
在onCreate()中,获取对listviews的引用:
listview1 = findViewById(R.id.list_1);
listview2 = findViewById(R.id.list_2);
然后,在onItemClicked()
中你可以这样测试:
if (a == listview1){
//something
}
else if(a==listview2){
//something
}