![](/img/trans.png)
[英]How to make one ImageView invisible when another clickable ImageView is pressed?
[英]How to make imageView clickable from OnItemClickListener?
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(final AdapterView<?> parent, View view, final int position, long id)
{
// My code is here. I want make my image clickable. I don't want make it clickable in my CustomAdapter getView() method because it doesn't allows me open DialogFragment from there.
// I already setted in xml of image clickable="true" and focusable = "false"
//I'll admit for any help and thanks in advance
}
}
如果从适配器获取图像Onclick,则不能从listview事件获取setOnItemClickListener。我建议您可以从适配器获取Onclick,而不是setOnItemClickListener从适配器获取Onclick。
首先,您必须在Adapter类中为Imageview添加OnClickListener
viewHolder.button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((ListView) parent).performItemClick(v, position, 0); // Let the event be handled in onItemClick()
}
});
然后,您可以在onItemClick
访问ImageView后
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
long viewId = view.getId();
if (viewId == R.id.button1) {
Toast.makeText(this, "Button 1 clicked", Toast.LENGTH_SHORT).show();
} else if (viewId == R.id.button2) {
Toast.makeText(this, "Button 2 clicked", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "ListView clicked" + id, Toast.LENGTH_SHORT).show();
}
}
请享用!...
显示来自适配器的对话框应该不是问题。 如果您的适配器需要它没有的东西,那么您可以为适配器添加一个带有某些侦听器的字段,例如private final OnImageClickListener
并创建一个接口:
public interface OnImageClickListener {
void onImageClicked(View view, int position, int id);
}
从活动或片段创建适配器时,可以在活动/片段中或在匿名类内部实现此接口,并且可以在其中访问片段管理器并执行所需的任何操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.