2011-06-27 4 views
1

テキストを受信するたびにダイアログが開きます。すでに開いているものがあればそれを開かないようにしたい。 isShowing()を使用して開いているかどうかを確認しようとしていましたが、isShowing()メソッドはAlertDialog.Builderタイプでは未定義です。ここに悪いコードのセクションがあります。どんな助けもすぐにとても甘いでしょう。ダイアログが表示されているかどうかを確認できません

public class PopUpReply extends Activity{ 
AlertDialog.Builder alertbox; 
AlertDialog.Builder alert; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // prepare the alert box 
    alertbox.isShowing(); 
    alertbox = new AlertDialog.Builder(this); 
+2

このコードには何か不思議なことがあります。 isShowing()を呼び出した後、ダイアログを初期化します。この場合、NullPointerExceptionを取得する必要があります。 –

+0

あなたは正しいです。完全に書き換えます。お手伝いありがとう! – DustinRiley

答えて

8

AlertDialog.BuilderクラスにisShowing()メソッドはありません。しかし、Dialogクラスには1つあります。

AlertDialog.Builder

Dialog

AlertDialog.BuilderAlertDialogを作成するために使用されます。 AlertDialogのインスタンスを取得したら、それがまだ表示されているかどうかを判断し、そのインスタンスでisShowing()を呼び出すことができます。

+0

ahh ...ビルダーがダイアログを作成するように変更しただけで、ダイアログが表示されます。ビルダーがちょうど表示される前に。テスト...すべてがスムーズになったらこれを受け入れます。 – DustinRiley

+0

実際には...移動する最善の方法は、アクティビティがすでに実行されているかどうかを確認し、受信者が既に存在する場合は無視することです。 – DustinRiley