我的應用程序從主視圖中打開一個新的視圖以:AlertDialog.Builder秀(),暴跌單擊處理
Intent ElementsIntent = new Intent(this, ElementList.class);
startActivityForResult(ElementsIntent, 0);
這表明元素的列表,並推動這些元素的1時,視圖打開與以前一樣使用新的活動。在這個視圖中,我想在按鈕點擊處理程序中顯示一個AlertDialog,但是當我調用show()時,應用程序崩潰。
我很確定它與上下文不正確根據我試圖打開對話框,但我已經嘗試從主視圖做一個靜態上下文,我嘗試過與element.this ,這是連接到活動的類,並且我嘗試了getApplicationContext,並且所有這些都導致應用程序崩潰。
我希望有人能解釋我做錯了什麼。
謝謝。
這裏是AlertDialog代碼崩潰:
public void GoBackClickHandler(View v)
{
AlertDialog.Builder builder = new AlertDialog.Builder(ElementItem.this);
builder.setMessage("Skal ændringer i besvarelse gemmes?")
.setCancelable(false)
.setPositiveButton("Ja", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
if(inputIsValue())
{
UpdateELement task = new UpdateELement();
task.applicationContext = ElementItem.this;
task.execute(1);
}
}
})
.setNegativeButton("Nej", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
finish();
}
});
AlertDialog alert = builder.create();
alert.show();
}
如果我這個代碼移到OnCreate中,則警報顯示就好了,沒有應用程序崩潰。只有當我將它放在ClickHandler中時,它纔會崩潰。
請發佈logcat消息。 – kosa
我們將需要啓動AlertDialog的代碼來幫助您。 –
如果你在一個匿名類,Activity.this通常是一個簡單的方法來獲取上下文 – Luke