2011-11-14 15 views
0

私のアプリでは、メッセージとokボタン付きのアラートボックスが表示されます。私はいくつかのAPIをヒットし、データベースに保存します(私は非同期タスクでそれを行います)。私の要件は、バックグラウンド処理が完了するまでokボタンを無効にしたいということです。バックグラウンドプロセスの完了後、私はアラートボックスでokボタンを有効にする必要があります。アンドロイドのアラートボックスでokボタンを無効にする方法

私の警告ボックスの作成コード:

helpBuilder1 = new AlertDialog.Builder(Home.this); 
    helpBuilder1.setTitle("Welcome"); 
    helpBuilder1.setMessage("Thank you for waiting while App Installs"); 

    mOkButton = helpDialog1.getButton(AlertDialog.BUTTON_POSITIVE); 
    mOkButton.setEnabled(false); 

    if(mOkButton.isEnabled()==false){ 
     Log.e("Home.java - ShowPopUp", "button is disablled"); 
     new First_Time_Sync().execute(); 
    } 

    mOkButton.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      helpDialog1.dismiss(); 
      showSilde_show_PopUp(); 

     } 
    }); 

    helpDialog1 = helpBuilder1.create(); 
    helpDialog1.show(); 

私を助けてください。 AlertDialog上

+3

AlertDialogであることが必要である:あなたのボタンと

LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.yourlayout,(ViewGroup) findViewById(R.id.yourLayoutsOuterLinearLayout)); builder.setView(view); 

レイアウトを使用してAlertDialogに追加はそのような何かを見ることができますか?なぜProgressDialogとして実装しないのですか?なぜOK-Buttonが存在しなければならないのですか? – stefan

+0

バックグラウンド処理が完了するまでokボタンを無効にする必要があります。 OKボタンを有効にすると、ユーザーはアプリと対話します。私は警告ボックスにそれが必要です。私を助けてください。 –

+0

代わりに、プロセスのダウンロードが完了したら、進捗バーを表示することをお勧めします。ただ、okボタンでアラートボックスを表示するだけです。これは、あなたが以前にコメントしたのではなく、これが一番良い方法であると確信しています。 –

答えて

1

利用getButton()基礎となるOKボタンのホールドを取得するために

Button mOkButton = helpDialog1.getButton(); 
mOkButton.setEnabled(false)` 
+0

アプリがクラッシュするボタンmOkButton = helpDialog1.getButton(); mOkButton.setEnabled(false)はhelpDialog1 = helpBuilder1.create()の上にあります。しかし、helpDialog1 = helpBuilder1.create();ボタンのmOkButtonがボタンを表示しない前です。問題のxmlを更新してください。 –

0

は、残念ながら何もまっすぐAPIの道はなさそうです。しかし、これはもっとカスタムソリューションの私のアイデアです:[入力中に更新:Rajdeepsソリューションが合理的であると思われる場合は、まずこれを試してみてください。]

カスタムAlertDialogレイアウトを作成します。

<LinearLayout 
    android:id="@+id/yourLayoutsOuterLinearLayout" 
    android:layout_height:...> 
    <Button 
    android:id="@+id/myButton" 
    android:...> 
    </Button> 
</LinearLayout> 
関連する問題