如何使两个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();
}