我在一个返回值是int类型的函数里需要弹出对话框,让用户选择yes or no,当用户选择yes时,函数返回0,当用户选择no时,函数返回-1,应该如何实现呢??
     我现在的思路是:对话框的回调函数onClick是void类型,所以想在onClick里记录下用户的选择,然后在主函数里根据用户的选择做判断返回0或者-1,但由于对话框是同步的原因,弹出对话框之后,用户还没有做选择,主函数已经继续往下执行了,所以没有实现预期功能
     

解决方案 »

  1.   

       为不同的 Yes/NO 按钮设置监听器,用户点击后,会回调这个监听器,然后继续回到主线程去处理额。    
      

  2.   

    弹出对话框时,让主线程调用interrupt方法,在点击对话框按钮时在来继续线程 根据返回值  做相应的操作
      

  3.   

    我现在设置监听器了,代码大体结构如下
    public class ABACDecide implements DialogInterface.OnClickListener{
            public int Func(){
               弹出对话框;
             }
            public void onClick(DialogInterface dialog, int which) {
            }
     }
    Func是有返回值的,我需要根据用户的选择决定Func的返回值
      

  4.   

    可以参考http://blog.csdn.net/winux/article/details/6269687这个博客。