【问题标题】:Multiple Listviews using same Adapter class and same CallBack Interface to Activity多个列表视图使用相同的适配器类和相同的活动回调接口
【发布时间】:2013-08-27 04:47:12
【问题描述】:
我有两个自定义 ListView,每个都有自己的适配器,但属于同一类。所以每个都有相同的回调接口到活动。
我正在努力解决 Activity 如何区分哪个 ListView 正在运行 CallBack。侦听器将选定的值发送回活动。但是,每个 ListView 都有相似的可选值(即 1、2、3、4)。因此,仅选择的值不足以区分选择源自哪个 ListView。
【问题讨论】:
标签:
android
listview
interface
callback
adapter
【解决方案1】:
是的,您可以通过设置 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}
}
希望对您有所帮助。
【解决方案2】:
要获得更高的可读性,请使用这样的匿名界面:
lstView.setOnItemClickListener(new OnItemClickListener() {
@SuppressWarnings("unchecked")
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
}
}
});
【解决方案3】:
回调监听器不应由同一个活动类实现。
您可以自己实现两个 listView 的侦听器。
例如:
listView1.setOnItemClickListener(listener1);
listView2.setOnItemClickListener(listener2);