我有一个 ListView
,右侧有一个图像。我想通过单击 ListView
上的图像来执行 onClick
监听器事件。请查看图片以供引用。
我知道基本的 OnClick
监听器实现,但这对我来说似乎有点棘手 :P
忘了说,点击实际的 ListView
会启动一个新的 Activity ,所以我需要维护这两个模式。
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
eventsData.remove(id);
cursor.requery();
}
});
上面的代码通过单击任何列表元素执行删除 eventsData.remove(id);
是执行此任务的数据库助手。就像我现在说的,我需要一种方法来通过单击图像而不是整个列表元素来执行相同的过程,我希望列表元素稍后执行一些其他操作。
我希望现在我清楚了一点。
解决方案:
如果有人遇到同样的情况,那么这里是适配器的完整代码。
class CustomAdapter extends ArrayAdapter<String> {
CustomAdapter() {
super(Activity.this, R.layout.row, R.id.label, items);
}
public View getView(final int position, View convertView,
ViewGroup parent) {
View row=super.getView(position, convertView, parent);
deleteImg=(ImageView)row.findViewById(R.id.icon);
deleteImg.setImageResource(R.drawable.delete);
deleteImg.setOnClickListener(new OnClickListener() {
String s = items[position];
@Override
public void onClick(View v) {
Toast.makeText(context, s, Toast.LENGTH_SHORT).show();
}
});
return(row);
}
我知道编码有点蹩脚,所以请耐心等待,我只是想展示它的实际过程。
它对我有用:)
最佳答案
你应该在你的 Adapter
而不是 Activity
中完成。
yourImg.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// things you want to do
}
});
关于android - ListView 图像的 onClick 监听器 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10715201/