1

我有一个 ListView 显示一个 Items 列表,每个 item 包含多个 TextViews 和 ImageViews,如下:

在此处输入图像描述

当我点击我的ImageView时,我有一些我想要执行的代码行。

@Override
public void onItemClick(AdapterView<?> parent, View view,final int position, long id) 
{
    ImageView del=(ImageView) view.findViewById(R.id.ImageViewDelete);
    del.setOnClickListener(new OnClickListener() 
    {

        @Override
        public void onClick(View arg0) 
        {
            //Some Line Of Code here            
        }
    });

}

当我单击我的ImageView时,什么也没发生。

ps:我已将ImageView的属性“可点击”设置为 true 。

4

2 回答 2

2

您必须从适配器的 getView() 方法内部处理您的 clickListener

public View getView(int pos, View convertView, ViewGroup parent){
    ...
    ImageView redX = (ImageView) row.findViewById(R.id.redX);
    redX.setOnClickListener(new OnClickListener(){
        public void onClick(View v){

             Context ctx = v.getContext();
             doSomething(ctx);
        }
    });
    ...
    return row;
}

您需要的确切语法将取决于您的布局是如何设置的,但这是执行您想要的整体“方式”。

于 2013-05-21T18:59:24.553 回答
1

您可以在自定义 BaseAdapter 类中编写 On-click 事件

public View getView(final int position, View convertView, ViewGroup parent) {}方法 。

您想在图像视图中添加 OnClick 事件,

ImageView more = (ImageView) view.findViewById(R.id.moreImageView);

比添加点击事件

public View getView(final int position, View convertView, ViewGroup parent) {
more.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {



            }
        });

}
于 2013-05-21T19:01:56.073 回答