2012-04-25 6 views
4

実行時に、例えばTextWatcher内からAlertDialogのポジティブボタンを無効にする方法はありますか?実行時にAlertDialogのポジティブボタンを無効にする方法はありますか?

あなたが後でそれを修正するために、ダイアログ自体への参照を取得する必要があるので、あなたがあなたのビルダーを少し変更する必要がありますが、その後、あなたはボタンのいつでもあなたを有効または無効に AlertDialog.getButton()を呼び出すことができます
AlertDialog.Builder(this) 
        .setTitle(getString(R.string.createvfs)) 
        .setView(newVSView_v11) 
        .setPositiveButton(getString(R.string.okay), 
          new DialogInterface.OnClickListener() { 

           @Override 
           public void onClick(DialogInterface dialog, 
             int whichButton) { 
           } 
          }) 
        .setNegativeButton(getString(R.string.cancel), 
          new DialogInterface.OnClickListener() { 
           @Override 
           public void onClick(DialogInterface dialog, 
             int whichButton) { 
            // Canceled. 
           } 
          }).show(); 

答えて

7

好き。このようなもの...

//Use create() so you can get the instance back 
AlertDialog dialog = AlertDialog.Builder(this) 
       .setTitle(getString(R.string.createvfs)) 
       .setView(newVSView_v11) 
       .setPositiveButton(getString(R.string.okay), 
         new DialogInterface.OnClickListener() { 

          @Override 
          public void onClick(DialogInterface dialog, 
            int whichButton) { 
          } 
         }) 
       .setNegativeButton(getString(R.string.cancel), 
         new DialogInterface.OnClickListener() { 
          @Override 
          public void onClick(DialogInterface dialog, 
            int whichButton) { 
           // Canceled. 
          } 
         }).create(); 
//Then show it 
dialog.show(); 

/* ...Sometime in the distance future... */ 
dialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(false); 

実際にボタンを見えなくするには、やや難しいです。私はhustボタンを無効にしたい...]ボタンをsetVisibility()を呼び出すと、良い結果を生み出すか、しませんか現時点で

HTH

+4

をテストすることはできません、私はあなたのコードを試してみましたが、それはdialog.getButtonので、fsは(DialogInterface.BUTTON_POSITIVE)はnullを返します。 :S –

関連する問題