簡體   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