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的值?
}

解决方案 »

  1.   

    把那返回去掉,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();
      

  2.   

    其实就是想要弹出一个有“确认”“取消”按钮的对话框,但是又不想每次都是
    new AlertDialog....
    ....
    ...
    dialog.show();
    这样写一大串代码。
      

  3.   

    你快慢将result定义为public了,只需在onClick事件里面给result值后,再调用你希望调用的方法就可以了。