0

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

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();
4

2 回答 2

0

在你的代码之上写

mybuilder = new AlertDialog.Builder(this);

和之前

sifrePencere.show():

写下这个声明

myAlertDialog = mybuilder.create();
于 2013-02-24T19:20:25.003 回答
0

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

于 2013-02-25T14:12:00.737 回答