dialog-android怎么确定对话框返回的值是true还是false

2025-03-09 08:12:57
推荐回答(1个)
回答1:

用Interface给你的Alert Dialog创建一个监听器用来监听AlertDialogs的动作
创建Interface
public class MyInterface {

DialogReturn dialogReturn;

public interface DialogReturn {

void onDialogCompleted(boolean answer);
}

public void setListener(DialogReturn dialogReturn) {
this.dialogReturn = dialogReturn;
}

public DialogReturn getListener() {
return dialogReturn;

}
}

现在,用你创建的 implements MyInterface.DialogReturn在你的类只是实现了Interface
然后你可以设置监听器而且能让它想下边的这样作用,
public class Main extends Activity implements MyInterface.DialogReturn{

MyInterface myInterface;
MyInterface.DialogReturn dialogReturn;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
....
myInterface = new MyInterface();
myInterface.setListener(this);
}

public void Confirm(Context context) {
AlertDialog dialog = new AlertDialog.Builder(context).create();
dialog.setTitle("Confirmation");
dialog.setMessage("Choose Yes or No");
dialog.setCancelable(false);
dialog.setButton(DialogInterface.BUTTON_POSITIVE, "Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int buttonId) {
myInterface.getListener().onDialogCompleted(true);
}
});
dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int buttonId) {
myInterface.getListener().onDialogCompleted(false);
}
});
dialog.setIcon(android.R.drawable.ic_dialog_alert);
dialog.show();
}

@Override
public void onDialogCompleted(boolean answer) {
Toast.makeText(Main.this, answer+"", Toast.LENGTH_LONG).show();
if(answer)
// do something
else
// do something
}
}