- Java code
public int result;public int confirm(Context context,String title, String message) { Dialog dialog = new AlertDialog.Builder(context) .setTitle(title) .setMessage(message) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result = 1; } }).setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result = 2; } }).create(); dialog.show(); Log.i(Constant.LOG_TAG, "click result = "+String.valueOf(result)); return result;//这里在onClick()执行之前result就返回了,如何返回onClick()里面的result的值?}
------解决方案--------------------
把那返回去掉,result已经是成员变量了,干嘛还要返回
另外,你这个方法也是多余的,没必要。
直接写
new AlertDialog.Builder(context).setTitle("").setMessage("").setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result = 1;
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result = 2;
}
}).show();
------解决方案--------------------
你快慢将result定义为public了,只需在onClick事件里面给result值后,再调用你希望调用的方法就可以了。