繁体   English   中英

如何从OnItemClickListener使imageView可点击?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM