2011-08-07 13 views
0

:ヤードにこれを行うにはより多くのコードを書くことVB MSGBOX Javaへの警告あなたが書いた警告ボックスを使用するVBで

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

Javaでは、我々は持っているが。私が書いたかったのは、どこからでも呼び出すことができ、応答を返すことができるユーティリティ関数でした。 私が書いた:AlertDialogBu​​ilderは、おそらく私は別のクラスからコンテキスト変数を渡す必要があることを意味このを必要とするため

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; 

しかし、私は別のクラスに移動できませんでした。 メッセージボックスは、インタラクティブフォームのほぼ不可欠なコンポーネントです。メッセージボックスを開くたびに1行のコードを追加するだけです。方法が必要です。

答えて

1

AlertDialogBu​​ilderがこれを必要とするため、別のクラスにコンテキスト変数を渡す必要があるため、別のクラスに移動できませんでした。

はい。さらに、show()はブロックコールではないため、コードは機能しません。Responsenullです。

Aメッセージボックスは、インタラクティブフォーム

あなたはあなたの意見を歓迎しているのはほぼ必須成分です。モーダルダイアログ、特にあなたが提案しているような確認ダイアログは、現代のUI開発、特にモバイルデバイスでは悪い形とみなされます。たとえば、Why are modal dialog boxes evil?を参照してください。

私が欲しいのは、メッセージボックスを開くたびに1行のコードを追加するだけです。方法が必要です!

いいえ、これはブロッキングshow()コールを意味するためです。 Androidは、最新のUIフレームワークのように、イベント駆動型であり、Androidやその他のフレームワークの場合、UIは本質的にシングルスレッドです。

ところで、Javaプログラミングスタイル(たとえば、メソッド、変数、および小文字で始まるデータメンバー)の採用を検討することをお勧めします。

関連する問題