【发布时间】:2011-06-01 11:47:47
【问题描述】:
我有一个 ListView,其中包含具有这种布局的项目:
<LinearLayout ...>
<LinearLayout ...>
<!--Elements -->
</LinearLayout>
<LinearLayout ...>
<!--Elements -->
</LinearLayout>
</LinearLayout>
所以我的项目有两个不同的部分。我希望能够在每个项目内设置不同的 onclickListener(每个 LinearLayout 一个)。到目前为止,我已经尝试覆盖 onListItemClick,但它似乎无法正常工作:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
ViewGroup vg = (ViewGroup)v;
vg.getChildAt(0).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mCtx, "element1", Toast.LENGTH_SHORT).show();
}
});
vg.getChildAt(1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mCtx, "element2", Toast.LENGTH_SHORT).show();
}
});
}
有什么办法解决这个问题吗?
谢谢。
【问题讨论】:
-
你确定
vg.getChildAt(0)和vg.getChildAt(1)返回Linearlayout -
没关系,我现在想要的是为listview Item设置不同的事件。