我是Java Android的新手,我遇到了这个问题,我不知道它叫什么,这是我的代码:
public boolean msgBox(String title, String text) {
boolean bReturn = false;
AlertDialog.Builder adb = new AlertDialog.Builder(this);
adb.setCancelable(false);
adb.setTitle(title);
adb.setMessage(text);
adb.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
//this suppose tell msgBox return true
}
});
adb.setNegativeButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
//this suppose tell msgBox return false
}
});
adb.show();
return bReturn;
}
现在,当用户点击正/负按钮时,如何告诉msgBox返回true / false?
之前谢谢答案 0 :(得分:0)
这是不可能的,因为该方法将在对话框打开后结束。方法完成后,对话框将继续打开。
为了将信息返回给你的msgBox调用者,你需要提供一个回调函数。
您可以创建一个接口,将其传递给msgBox,然后在对话框按钮中调用它。
public interface OnDialogButtonClickedCallback {
public void onDialogButtonClicked(boolean wasPositive);
}
像这样传递:
public boolean msgBox(String title, String text, final OnDialogButtonClickedCallback callback)
在按钮中使用它:
@Override
public void onClick(DialogInterface dialog, int which) {
if(callback != null) {
callback.onDialogButtonClicked(true);
}
}
答案 1 :(得分:0)
@Override
public void onClick(DialogInterface dialog, int which) {
if(which == 1) {
bReturn = true or false;//yes or no
}
//this suppose tell msgBox return false
}
在上面的函数中,您确定变量int单击了哪个按钮(f.e。:Yes是第一个,No是第二个)。
bReturn应该是全球性的。
由于您为每个按钮执行单独的侦听器,因此您甚至不必区分,因为这些是单独的侦听器。