如何使两个AlertDialog在Android Studio中依次出现?

如何使两个AlertDialog在Android Studio中依次出现?,android,Android,我想让两个警报对话框一个接一个出现。一个用于获取用户名,另一个用于获取密码。所以,当我运行这个程序时,我得到了一个应用程序崩溃。我对安卓工作室还很陌生。这是我的密码 AlertDialog.Builder builder1 = new AlertDialog.Builder(this); final AlertDialog.Builder builder2 = new AlertDialog.Builder(this); final EditTe

我想让两个警报对话框一个接一个出现。一个用于获取用户名,另一个用于获取密码。所以,当我运行这个程序时,我得到了一个应用程序崩溃。我对安卓工作室还很陌生。这是我的密码

 AlertDialog.Builder builder1 = new AlertDialog.Builder(this);
            final AlertDialog.Builder builder2 = new AlertDialog.Builder(this);
            final EditText text = new EditText(this);

            builder1.setTitle("Username").setMessage("Please enter your name.").setView(text);
            builder1.setPositiveButton("Apply", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface di, int i) {
                    final String name_from_alert = text.getText().toString(); 
                }
            });
            // disables outside touch cancel
            builder1.setCancelable(false);
            builder1.create().show();


            // getting password
            builder2.setTitle("Password").setMessage("Please enter a password").setView(text);
            builder2.setPositiveButton("Apply", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface di, int i) {
                    final String password_from_alert = text.getText().toString();
                }
            });
            // disables outside touch cancel
            builder2.setCancelable(false);
            builder2.create().show();

感谢您的帮助。提前感谢。

您可以创建一个类,然后扩展
DialogFragment
类,然后重写其
OnCreateDialog()
方法,然后创建一个静态方法来创建实例并传递参数

onCreate对话框

 @Override
 public Dialog onCreateDialog(Bundle savedInstanceState) {
 AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
 //set title,message or view ....

 // when you done
 return dialog.create();
 }
放置参数的静态方法(静态工厂模式设计)

那么你可以像这样使用它

DialogFragment dialog = CustomAlertDialog.newInstance("titulo","message");
dialog.show(/* etc.. */ );

采用对话框的自定义布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#056FB4">

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true">

    <EditText
        android:id="@+id/edUsername"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:hint="Enter Username"
        android:imeOptions="actionDone"
        android:inputType="textCapSentences|textPersonName"
        android:capitalize="sentences"
        android:maxLength="20"
        android:padding="13dp"
        android:scrollHorizontally="false"
        android:singleLine="true"
        android:textColor="@color/colorWhite"
        android:textColorHint="#c2b098"
        android:textSize="12dp"
        android:textStyle="bold" />
<EditText
        android:id="@+id/edPassword"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:hint="Enter Password"
        android:imeOptions="actionDone"
        android:inputType="textPassword"
        android:capitalize="sentences"
        android:maxLength="20"
        android:padding="13dp"
        android:scrollHorizontally="false"
        android:singleLine="true"
        android:textColor="@color/colorWhite"
        android:textColorHint="#c2b098"
        android:textSize="12dp"
        android:textStyle="bold" />
    <Button
        android:text="Ok"
        android:textSize="15dp"
        android:textColor="@color/colorWhite"
        android:id="@+id/btnOk"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/edBoxName"
        android:layout_centerHorizontal="true"
        android:layout_margin="20dp"
        android:gravity="center"
        android:textAllCaps="false" />
</RelativeLayout>

1.什么东西坏了?你忘了带航海日志了。2.为什么不在同一对话框中询问用户名和密码?通常就是这样做的。很抱歉我肯定会在以后的混乱中附上日志。谢谢你的提示。赞成!就是这样做的。谢谢。:)非常感谢你。这是做这件事的最佳方式。:)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#056FB4">

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true">

    <EditText
        android:id="@+id/edUsername"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:hint="Enter Username"
        android:imeOptions="actionDone"
        android:inputType="textCapSentences|textPersonName"
        android:capitalize="sentences"
        android:maxLength="20"
        android:padding="13dp"
        android:scrollHorizontally="false"
        android:singleLine="true"
        android:textColor="@color/colorWhite"
        android:textColorHint="#c2b098"
        android:textSize="12dp"
        android:textStyle="bold" />
<EditText
        android:id="@+id/edPassword"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:hint="Enter Password"
        android:imeOptions="actionDone"
        android:inputType="textPassword"
        android:capitalize="sentences"
        android:maxLength="20"
        android:padding="13dp"
        android:scrollHorizontally="false"
        android:singleLine="true"
        android:textColor="@color/colorWhite"
        android:textColorHint="#c2b098"
        android:textSize="12dp"
        android:textStyle="bold" />
    <Button
        android:text="Ok"
        android:textSize="15dp"
        android:textColor="@color/colorWhite"
        android:id="@+id/btnOk"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/edBoxName"
        android:layout_centerHorizontal="true"
        android:layout_margin="20dp"
        android:gravity="center"
        android:textAllCaps="false" />
</RelativeLayout>
 public void openDialog() {
    final Dialog dialog = new Dialog(MainActivity.this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.custom_dialog);
    dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
    final EditText edUsername = (EditText) dialog.findViewById(R.id.edUsername);
    final EditText edPassword = (EditText) dialog.findViewById(R.id.edPassword);
    Button btnDissmissDialog = (Button) dialog.findViewById(R.id.btnOk);
    btnDissmissDialog.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (dialog != null) {
                if (dialog.isShowing()) {
                        String strUsername = edUsername.getText().toString().trim();
                        String strPasswird = edPassword.getText().toString().trim();
                        dialog.dismiss();
                }
            }
        }
    });
    dialog.show();
}