0

AlertDialogとEditTextを介してユーザーからパスワードを取得する必要があります。ユーザーがこのAlertDialogを開いてから、 [キャンセル]または[戻る]ボタンを押すと、通常は消えます。ただし、ユーザーがこの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

この AlertDialog を OptionsMenu に表示していました。しかし、コードの上に変数を定義しました。だから、エラーはここから来ます。これらの変数を OnOptionsItemClick に定義したところ、修正されました。

于 2013-02-25T14:12:00.737 に答える