我有一个ListView,显示Items列表,每个项目包含多个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 的属性“clickable”设置为true。
答案 0 :(得分:2)
您必须从适配器
中的getView()方法内部处理clickListenerpublic 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;
}
您需要的确切语法取决于您的布局设置方式,但这是实现您想要的整体“方式”。
答案 1 :(得分:1)
您可以在自定义BaseAdapter类
中编写On-click Event 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) {
}
});
}