我有两个自定义 ListView,每个都有自己的适配器,但属于同一类。所以每个都有相同的回调接口到活动。
我正在努力解决 Activity 如何区分哪个 ListView 正在运行 CallBack。侦听器将选定的值发送回活动。但是,每个 ListView 都有相似的可选值(即 1、2、3、4)。因此,仅选择的值不足以区分选择源自哪个 ListView。
要获得更多可读性,请使用如下匿名接口:
lstView.setOnItemClickListener(new OnItemClickListener() {
@SuppressWarnings("unchecked")
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
}
}
});
回调监听器不应由同一个活动类实现。您可以自己实现两个 listView 的侦听器。
例如:
listView1.setOnItemClickListener(listener1);
listView2.setOnItemClickListener(listener2);
是的,您可以通过设置 2 列表来做到这一点是全局变量。并检查您的回调,例如:
public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
if(arg0 == mListView1){// listview1 item click}
else if(arg0 == mListView2){// listview2 item click}
}
希望这有帮助。