我想将一个通用的 onitemclicklistener 附加到一个数组列表,listview 的每一行中有 3 个元素,我希望它们都可以点击,它们都做不同的事情。我想做这样的事情
自定义监听器
public OnItemClickListener customListener(){
OnItemClickListener listener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
int viewId = view.getId();
Log.d(app.TAG,"position " + String.valueOf(position) + " id " + String.valueOf(id));
switch(viewId){
case R.id.tvPromote:
//promote text view hit
break;
case R.id.tvComment:
//comment text view hit
break;
}
}
};
return listener;
}
我之前在我的活动中这样设置
feedArray = new ArrayList<Object>();
feedAdapter = new FeedAdapter(this, feedArray);
listFeed.setAdapter(feedAdapter);
listFeed.setOnItemClickListener(customListener());
但是单击的视图始终只是整行的布局,我想单击特定的元素。
我知道我可以将 onviewclicklisteners 附加到数组适配器中的特定元素,但我需要访问 Activity 中的方法,这开始变得非常 hacky。