2013-02-22 70 views
0

當我在對話框中按下取消(Vazgeç)按鈕時,它會消失。但是當我再次按下時,會發生錯誤。我想我無法解開對話。這裏是我的代碼:Android中解除對話框時出錯

sifrePencere.setTitle("Çıkış"); 
sifrePencere.setMessage("Uygulamayı kapatmak için lütfen şifreyi giriniz:"); 
sifrePencere.setView(sifre); 

sifrePencere.setPositiveButton("Tamam", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 

     String girilenSifre = sifre.getText().toString(); 

     SQLiteDatabase db = vt.getReadableDatabase(); 

     Cursor kayit = db.rawQuery("SELECT sifre FROM CocukTableti", null); 
     kayit.moveToFirst(); 

     if (girilenSifre.equals(kayit.getString(0))) { 

      android.os.Process.killProcess(android.os.Process.myPid()); 

     } else { 

      dialog.dismiss(); 
      Toast.makeText(getApplicationContext(), "Girilen şifre hatalı!", Toast.LENGTH_SHORT).show(); 

     } 

    } 
}); 

sifrePencere.setNegativeButton("Vazgeç", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 

     dialog.dismiss(); 

    } 
}); 

sifrePencere.show(); 
+0

你可能應該填充錯誤stacktrace。 – JoxTraex 2013-02-22 15:10:37

+0

*「但是當我再次按下它時,會發生錯誤」*,如果對話框消失,如何再次單擊它?你重新創建了它嗎?還是你重新打開同一個對話框(實例)? – Veger 2013-02-22 15:12:41

+0

首先我點擊,它出現。然後,我按回按鈕或取消(vazgeç)按鈕,它會正常消失。但是,當我按下再次打開對話框的按鈕時,出現錯誤。 – halilkaya 2013-02-22 15:14:52

回答

0

從您的取消按鈕減速dialog.dismiss();和您的問題將得到解決。

+1

'sifrePencere.setNegativeButton(「Vazgeç」,null)' - 它將顯示取消按鈕,並且按下該對話框時將被取消。 – Karakuri 2013-02-22 15:49:23

+0

默認情況下,OK或Cancel按鈕將在其方法中執行代碼並關閉對話框,因此不要在這兩種方法中明確地關閉對話框。 – 2013-02-22 15:54:38

+0

你是對的我做到了,但我的問題仍在繼續。 – halilkaya 2013-02-22 16:16:59