在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;
但是,我无法将其移动到另一个类,因为AlertDialogBuilder需要 this ,这可能意味着我需要从另一个类传递上下文变量。 消息框是交互式表单中几乎必不可少的组件,我想要的是每次打开消息框时都添加1行代码......必须有一种方法!!
答案 0 :(得分:1)
我无法将它移动到另一个类,因为AlertDialogBuilder需要这个,这可能意味着我需要从另一个类传递一个上下文变量。
是。此外,您的代码无效 - Response
为null
,因为show()
不是阻止调用。
消息框是交互式表格的几乎必不可少的组成部分
欢迎您的意见。模态对话框,特别是像你提出的确认对话框,在现代UI开发中被认为是不好的形式,特别是在移动设备上。例如,请参阅Why are modal dialog boxes evil?。
我想要的只是每次打开一个消息框时添加一行代码......必须有办法!
不,因为这意味着阻止show()
电话。与大多数现代UI框架一样,Android是事件驱动的,对于Android和其他一些框架,UI本质上是单线程的。