私はAndroid/Javaに比較的慣れていません。Stack Overflowのおかげで、ここでの質問から多くのことを学ぶことができました。しかし、私は今この問題に固執しています。
AlertDialog
アプリの起動時にポップアップするパスワード入力があります。からパスワードを読み取り、EditText
これをファイルに保存されているものと比較します。AlertDialog
無効/間違ったパスワードが提供されたときに表示される追加のパスワードが必要でした。これも実装しました。
現在、この2番目のダイアログには2つのボタン-Resetと。がありRetryます。クリックしたときにアクティビティに最初のダイアログを再度表示させたいRetry。これは私が無知なところです。誰かが実用的な解決策と少しの説明を提供することができれば、私は非常に義務付けられます。
これが私のコードです:
LayoutInflater li = LayoutInflater.from(context);
View passView = li.inflate(R.layout.authdialog, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
// set prompts.xml to alertdialog builder
alertDialogBuilder.setView(passView);
final EditText passInput = (EditText) passView.findViewById(
R.id.editTextDialogUserInput);
final TextView txtv = (TextView) findViewById(R.id.textv);
// set dialog message
alertDialogBuilder
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String data = "";
try {
FileInputStream fis = openFileInput("authfile");
InputStreamReader in = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(in);
data = br.readLine();
} catch (Exception e) {
e.printStackTrace();
}
if (data.toString().equals(
passInput.getText().toString())) {
txtv.setText("You Have Logged in");
} else {
LayoutInflater ln = LayoutInflater.from(context);
View invalidView = ln.inflate(R.layout.invdialog,
null);
AlertDialog.Builder invalidDialogBuild = new AlertDialog.Builder(
context);
invalidDialogBuild.setView(invalidView);
// set dialog message
invalidDialogBuild
.setCancelable(false)
.setPositiveButton(
"Retry",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int id) {
dialog.cancel();
}
})
.setNegativeButton(
"Reset",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int id) {
dialog.cancel();
}
});
dialog.cancel();
AlertDialog invalidDialog = invalidDialogBuild
.create();
// show it
invalidDialog.show();
}
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();