我有一个可展开列表视图,其中包含 imageview 和 textview 。我可以单击子视图并执行某些操作但我想在可扩展列表的子项中单击单独的imageview和textview,并为每个执行不同的操作。我想在 main 中执行此操作,而不是在可扩展适配器类中执行此操作。
final ExpandableListView exlv = this.getExpandableListView();
exlv.setOnChildClickListener(new OnChildClickListener() {
public boolean onChildClick(ExpandableListView arg0, View arg1,
int arg2, int arg3, long arg4) {
Toast.makeText(ExpList.this,
"Child ItemClicked " + arg2 + " " + arg3,
Toast.LENGTH_SHORT).show();
imageView = (ImageView)arg1.findViewById(R.id.imageView2);
Log.i("ImageView Value "," hi "+imageView.toString());
imageView.setOnClickListener(new OnClickListener() {
@Override public void onClick(View arg0) { // TODO Auto-generated
Log.v("clicked", "done");
} });
// TODO Auto-generated method stub
return false;
}
});
我可以点击具有此代码的孩子后单击图像视图,但我想直接在listview子项中单击图像视图。我怎么能做那样的事情或exlv.setOnImageViewClickListener?
答案 0 :(得分:0)
Subclass BaseExpandableListAdapter,以及:
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {}
或
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {}
在单独膨胀的视图上设置onClickListeners。
编辑:
抱歉,我错过了您不想在适配器中执行此操作。我知道listview有一个方法 - setItemsCanFocus()可能会有所帮助。
查看此谷歌I / O - 我发现它真的很有帮助:
http://www.youtube.com/watch?v=wDBM6wVEO70
他们谈论集项目可以集中在~24:00