2013-02-24 65 views
0

我必须通过AlertDialog和EditText从用户那里获取密码。当用户打开此AlertDialog,然后按取消后退按钮,它正常消失。但是,当用户再次打开此AlertDialog时,应用程序将被中断。我的代码在这里,我在哪里犯错?

Android AlertDialog EditText解雇错误

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(); 
      dialog.cancel(); 
      Toast.makeText(getApplicationContext(), "Girilen şifre hatalı!", Toast.LENGTH_SHORT).show(); 

     } 

    } 
}); 

sifrePencere.setNegativeButton("Vazgeç", null); 

sifrePencere.show(); 

回答

0

在你的代码写的顶部

mybuilder = new AlertDialog.Builder(this); 

之前

sifrePencere.show(): 

写这个说法

myAlertDialog = mybuilder.create(); 
+0

你能告诉它编辑我的代码吗?顺便说一下,我已经写了新的AlertDialog.Builder(this);在上面.. – halilkaya 2013-02-25 14:00:07

0

我在OptionsMenu中显示了这个AlertDialog。但是我在代码上定义了变量。所以,错误来自这里。我将这些变量定义为OnOptionsItemClick,它修复了!