VB Msgbox到Java Alert

时间:2011-08-07 11:30:30

标签: java android

在VB中使用你写的警告框:

Response=Msgbox("Click YES to continue, NO to Abort",vbyesno)
If response=vbyes...do something

在Java中,我们必须编写更多代码才能执行此操作。我想写的是一个可以从任何地方调用并返回响应的实用函数。 我写道:

 protected static boolean Response=false;
public  boolean CreateAlert(String AlertMessage){   
AlertDialog.Builder alertbox = new AlertDialog.Builder(this);

alertbox.setMessage(AlertMessage);
      alertbox.setPositiveButton("YES", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface arg0, int arg1) { 
        Response=true; 
      } 
  }); 
     alertbox.setNegativeButton("NO" , new DialogInterface.OnClickListener(){
   public void onClick(DialogInterface arg0, int arg1) { 
       Response=false;
   }       
 });
  alertbox.show(); 
  return Response;

但是,我无法将其移动到另一个类,因为AlertDialogBu​​ilder需要 this ,这可能意味着我需要从另一个类传递上下文变量。 消息框是交互式表单中几乎必不可少的组件,我想要的是每次打开消息框时都添加1行代码......必须有一种方法!!

1 个答案:

答案 0 :(得分:1)

  

我无法将它移动到另一个类,因为AlertDialogBu​​ilder需要这个,这可能意味着我需要从另一个类传递一个上下文变量。

是。此外,您的代码无效 - Responsenull,因为show()不是阻止调用。

  

消息框是交互式表格的几乎必不可少的组成部分

欢迎您的意见。模态对话框,特别是像你提出的确认对话框,在现代UI开发中被认为是不好的形式,特别是在移动设备上。例如,请参阅Why are modal dialog boxes evil?

  

我想要的只是每次打开一个消息框时添加一行代码......必须有办法!

不,因为这意味着阻止show()电话。与大多数现代UI框架一样,Android是事件驱动的,对于Android和其他一些框架,UI本质上是单线程的。

BTW,您可能希望考虑采用Java编程样式(例如,以小写字母开头的方法,变量和数据成员)。