2017-08-06 44 views
0

我有上下文發送到適配器如何在Adapter類中使用AlertDialog?

public ImageAdapter(Context context, List<Image> imagesList) { 
     this.context = context; 
     mImageList = imagesList; 
    } 

我使用AlertDialog這樣:

AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.AlertDialogCustom); 

但我得到的錯誤:

Unable to add window -- token null is not valid; is your activity running? 
+0

嘿,如果您覺得答案解決了問題,請將其標記爲'接受'通過單擊綠色的複選標記。這有助於將注意力集中在仍然沒有答案的舊版SO上。 –

回答

2

發送上下文ActivityName.this/getActivity()從活動/片段相應地調用您的適配器

+0

謝謝!有用。 – user7616014

+0

標記ans正確,如果它有幫助:) – AAA

+0

如果你的適配器應該知道活動來顯示對話框 - 最好是將'Activity'而不是'Context'傳遞給構造函數並保存在適配器內部。這樣,如果忘記了此適配器內部的對話框,就不會陷入崩潰。 –

0

要做到這一點,您需要定義回調。

  • 定義界面(回調與方法)
  • 實現這個回調中的活動,持有適配器
  • 定義對象作爲參數適配器像

    公共ImageAdapter(上下文的背景下,列表imagesList,回調 回調){this.context = context; mImageList = imagesList; this.callback = callback; }

  • 您的通話中你的適配器調用方法內回來,只要你想你的活動將聽取這一行動,並在您的活動這種方法中,你可以創建你的警告對話框

0

你應該傳遞活動而不是上下文AlertDialog.Builder.and的構造函數,並且您必須確保活動正在運行時對話框正在運行

相關問題