2016-04-28 43 views
1

我試圖創建RecyclerView.AdapterAlertDialog與此代碼警告對話框無法添加窗口錯誤

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(context, R.style.AppTheme)); 
alertDialogBuilder.setView(R.layout.reserve_dialog); 
alertDialogBuilder.create(); 
alertDialogBuilder.show(); 

但我在logcat中收到此錯誤:

Theme: themes:{} 
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 

有什麼不對?

+0

使用你的上下文像這樣context = itemView.getContext(); –

+0

onbindviewholder中沒有itemView @JhamanDas –

回答

1

你逝去的context.getApplicationContext()

而是這一關活動方面的

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(MainActivity.this, R.style.AppTheme)); 
    alertDialogBuilder.setView(R.layout.reserve_dialog); 
    alertDialogBuilder.create(); 
    alertDialogBuilder.show(); 
+0

我改變了,但沒有解決 –

+0

你得到了什麼異常? – sukhbir

+0

同樣的例外 –

1

而不是getApplicationContext(),只需使用ActivityName.this。

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(activity, R.style.AppTheme)); 
    alertDialogBuilder.setView(R.layout.reserve_dialog); 
    alertDialogBuilder.create(); 
    if(!isFinishing()){ 
    alertDialogBuilder.show(); 
    } 
+0

沒有解決 –

+0

你在哪裏創建了Alert對話框..在Activity或Fragment ..中? –

+0

in'RecyclerView.Adapter' –

0

刪除getApplicationContext()並傳遞活動上下文。

+0

沒有解決 –

0

內新的對話(youractivity.this,風格)

希望它-111解決

+0

沒有活動,我使用activity.this –

+0

你能告訴我什麼是實際的類類型? – Naitik

+0

'RecyclerView.Adapter '順便說一句,它解決了 –

0

如果您正在創建撥號在RecylerView.Adapter內OG,通過活動對象適配器的構造和創建生成器時,使用對象本身 -

if (!activity.isFinishing()) { 
     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(activity, R.style.AppTheme)); 
     alertDialogBuilder.setView(R.layout.reserve_dialog); 
     alertDialogBuilder.create(); 
     alertDialogBuilder.show(); 
    } 

當你在一個非活性類顯示一個對話框,那麼你必須通過活性一個參數。