2011-08-07 75 views
0

在VB中使用你寫一個提示框:VB MSGBOX到Java警報

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需要這大概意味着我需要從另一個類傳遞一個上下文變量移動到不同的班級。 一個消息框的互動形式幾乎是必不可少的組成部分,和所有我想要的是加1行代碼每個我打開一個消息框時間......一定有辦法!

回答

1

因爲AlertDialogBu​​ilder需要這這大概意味着我需要從另一個類傳遞一個上下文變量我無法將其移動到不同的類。

是的。此外,您的代碼不工作 - Responsenull,因爲show()不是阻塞調用。

一個消息框的互動形式

歡迎您到您的意見幾乎是必不可少的組成部分。在現代UI開發中,特別是在移動設備上,模態對話框,特別是您提議的確認對話框,被認爲是不好的形式。例如,請參閱Why are modal dialog boxes evil?

我想要的是每次打開一個消息框時添加1行代碼......必須有一個方法!

不,因爲那意味着阻止show()調用。與大多數現代UI框架一樣,Android也是事件驅動的,在Android和其他框架的情況下,UI本質上是單線程的。

順便說一句,你不妨考慮採用Java編程風格(例如,方法,變量和數據開始以小寫字母成員)。