Android 取消带有自定义布局的 alertDialog
Android cancel alertDialog with custom layout
我正在创建一个带有自定义布局的警告对话框,我想在按下其中一个布局按钮时取消该对话框。
LayoutInflater layoutInflater = LayoutInflater.from(GroupAdminOptions.this);
View alertView = layoutInflater.inflate(R.layout.change_group_name, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(GroupAdminOptions.
this);
final EditText userInput = (EditText) alertView.findViewById(R.id.editTextUserInput);
Button okButton = (Button) alertView.findViewById(R.id.okButton);
Button cancelButton = (Button) alertView.findViewById(R.id.cancelButton);
okButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("QQQ","" + userInput.getText());
}
});
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("QQQ","cancel");
}
});
alertDialogBuilder.setView(alertView);
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
当我按下取消按钮时可以取消alertDialog吗?
您必须将 AlertDialog
作为全局变量,然后您可以在 onClick()
方法中使用 AlertDialog
然后关闭它。
在将 alertDialog 声明为全局变量后尝试此代码。
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("QQQ","cancel");
alertDialog.dismiss();
}
});
希望对您有所帮助!
尝试在调用 alertDialogBuilder.show() 后定义 OnClickListeners,然后您可以从其中调用 alertDialog.dismiss()。例如
final AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
Button okButton = (Button) alertView.findViewById(R.id.okButton);
okButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("QQQ","" + userInput.getText());
alertDialog.dismiss();
}
});
Button cancelButton = (Button) alertView.findViewById(R.id.cancelButton);
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("QQQ","cancel");
alertDialog.dismiss();
}
});
It is possible to cancel alertDialog when I press cancel button?
是的,您需要在 cancelButton.setOnClickListener(...)
中调用 dialog.dismiss()
我正在创建一个带有自定义布局的警告对话框,我想在按下其中一个布局按钮时取消该对话框。
LayoutInflater layoutInflater = LayoutInflater.from(GroupAdminOptions.this);
View alertView = layoutInflater.inflate(R.layout.change_group_name, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(GroupAdminOptions.
this);
final EditText userInput = (EditText) alertView.findViewById(R.id.editTextUserInput);
Button okButton = (Button) alertView.findViewById(R.id.okButton);
Button cancelButton = (Button) alertView.findViewById(R.id.cancelButton);
okButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("QQQ","" + userInput.getText());
}
});
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("QQQ","cancel");
}
});
alertDialogBuilder.setView(alertView);
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
当我按下取消按钮时可以取消alertDialog吗?
您必须将 AlertDialog
作为全局变量,然后您可以在 onClick()
方法中使用 AlertDialog
然后关闭它。
在将 alertDialog 声明为全局变量后尝试此代码。
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("QQQ","cancel");
alertDialog.dismiss();
}
});
希望对您有所帮助!
尝试在调用 alertDialogBuilder.show() 后定义 OnClickListeners,然后您可以从其中调用 alertDialog.dismiss()。例如
final AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
Button okButton = (Button) alertView.findViewById(R.id.okButton);
okButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("QQQ","" + userInput.getText());
alertDialog.dismiss();
}
});
Button cancelButton = (Button) alertView.findViewById(R.id.cancelButton);
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("QQQ","cancel");
alertDialog.dismiss();
}
});
It is possible to cancel alertDialog when I press cancel button?
是的,您需要在 cancelButton.setOnClickListener(...)
dialog.dismiss()