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
}
}
问问题
1439 次
3 回答
3
如果您从适配器获取图像 Onclick,则不能从列表视图事件中获取 setOnItemClickListener。我建议您可以使用 Onclick,而不是 setOnItemClickListener 从适配器获取 Onclick。
于 2016-11-18T09:05:29.510 回答
1
首先,您必须OnClickListener
在 Adapter 类中添加 Imageview,例如
viewHolder.button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((ListView) parent).performItemClick(v, position, 0); // Let the event be handled in onItemClick()
}
});
然后在你可以访问 ImageViewonItemClick
之后
@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();
}
}
享受!...
于 2016-11-18T09:12:20.340 回答
0
从适配器显示对话框应该不是问题。如果您的适配器需要一些它没有的东西,那么您可以为您的适配器添加一个带有一些监听器的字段,private final OnImageClickListener
并创建一个接口:
public interface OnImageClickListener {
void onImageClicked(View view, int position, int id);
}
当您从您的活动或片段创建适配器时,您可以在您的活动/片段或匿名类中实现此接口,并且在那里您可以访问片段管理器并可以做任何您想做的事情。
于 2016-11-18T09:40:51.257 回答