如何检测ListView onItemClick发生了什么?

时间:2012-05-22 10:26:51

标签: android listview

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

2 个答案:

答案 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
    }