gpt4 book ai didi

android - 为具有 2 个 View 的 ListView 中的项目设置 OnClickListener

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:01:39 25 4
gpt4 key购买 nike

我有一个 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();
}
});

}

有什么解决问题的想法吗?

谢谢。

最佳答案

您必须对 ListView 中的所有元素使用 set onclicklistener。我创建了一个 ListView 。将适配器设置为 ListView 。我的适配器负责显示 ListView 的每个元素。所以在 getView() 中,我将把 onclicklistener 分配给所有我想要获得点击事件的元素。

例子

public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
ViewHolder holder;
if(convertView==null){
vi = inflater.inflate(R.layout.item, null);
holder=new ViewHolder();
holder.text=(TextView)vi.findViewById(R.id.text);;
holder.image=(ImageView)vi.findViewById(R.id.image);
vi.setTag(holder);
}
else
holder=(ViewHolder)vi.getTag();

holder.text.setText("item "+position);
holder.image.setTag(data.get(position));
holder.image.setOnClickListener(this);
holder.text.setOnClickListener(this);
imageLoader.DisplayImage(data.get(position), activity, holder.image);
return vi;
}

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
System.out.println("...clicked view is...."+arg0);
}

谢谢迪帕克

关于android - 为具有 2 个 View 的 ListView 中的项目设置 OnClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6200604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com