1

Activity我有两个ListViews但现在我必须检测ListView用户点击了什么。我已经adapterssetOnItemClickListener(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

4

2 回答 2

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;
    }
于 2012-05-22T10:29:09.373 回答
1

在 onCreate() 中,获取对列表视图的引用:

listview1 = findViewById(R.id.list_1);
listview2 = findViewById(R.id.list_2);

然后,onItemClicked()您可以像这样进行测试:

 if (a == listview1){
       //something
    }
 else if(a==listview2){
      //something
    }
于 2012-05-22T10:29:20.750 回答