Android 如何背对背显示AlertDialog?
这里我必须显示两个AlertDialogs。单击第一个AlertDialog的肯定按钮后,将显示第二个AlertDialog MainActivity.classAndroid 如何背对背显示AlertDialog?,android,android-alertdialog,Android,Android Alertdialog,这里我必须显示两个AlertDialogs。单击第一个AlertDialog的肯定按钮后,将显示第二个AlertDialog MainActivity.class public class MainActivity extends AppCompatActivity { public static final String ACTION_NEXT = "Next"; public static final String ACTION_DONE = "Done"; @Override prot
public class MainActivity extends AppCompatActivity {
public static final String ACTION_NEXT = "Next";
public static final String ACTION_DONE = "Done";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setupSecretFields(this, "Configuration", "Please Enter Password", ACTION_NEXT);
}
private void setupSecretFields(final Context context, final String title, final String hint, final String button) {
final AppCompatEditText appCompatEditText = new AppCompatEditText(context);
appCompatEditText.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
appCompatEditText.setHint(hint);
appCompatEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
final LinearLayout linearLayout = new LinearLayout(context);
linearLayout.addView(appCompatEditText);
linearLayout.setPadding(40, 30, 40, 20);
linearLayout.setLayoutParams(new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT));
final AlertDialog builder = new AlertDialog.Builder(context, R.style.CustomAlert)
.setPositiveButton(button, null)
.setNegativeButton("Cancel", null)
.setView(linearLayout)
.setCancelable(false)
.create();
builder.show();
builder.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (button.equals(ACTION_NEXT)) {
if (appCompatEditText.getText().toString().trim().equals("1234")) {
builder.dismiss();
//Showing another AlertDialog
setupSecretFields(context, "Configuration", "Please Enter Api Url", ACTION_DONE);
} else {
appCompatEditText.setError("Incorrect Password! Please try again");
}
} else {
Toast.makeText(context, "Application Will Restart...", Toast.LENGTH_LONG).show();
}
}
});
}
}
第一个对话框工作正常,但没有显示另一个AlertDialog。我不知道怎么了。请帮助。更改:
final AlertDialog builder = new AlertDialog.Builder(context, R.style.CustomAlert)
.setPositiveButton(button, null)
.setNegativeButton("Cancel", null)
.setView(linearLayout)
.setCancelable(false)
.create();
builder.show();
致:
应该可以帮助您。第二个对话框中有错误吗?您是否尝试了
builder.setPositiveButton()
method?@Vivek Mishra没有错误。。只需静默..@Sash\u KP我不能使用builder.setPositiveButton(),因为它会在单击正/负按钮后关闭对话框。请尝试将DialogInterface.button设置为正,而不是AlertDialog.button设置为正。这行吗?谢谢,先生,但是这个onclick监听器会在点击后关闭对话框。我不想关闭它,如果用户输入了错误的密码。请看这里的@eric的答案。。
final AlertDialog builder = new AlertDialog.Builder(context, R.style.CustomAlert)
.setPositiveButton("Button", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
//DO YOUR TASK (open your second dialog)
}
})
.setNegativeButton("Cancel", null)
.setView(linearLayout)
.setCancelable(false)
.create();
builder.show();