2012-05-24 21 views
0

我想創建一個簡單的單一選擇項目對話框。默認情況下,沒有項目被選中。我只想要一個OK和Cancel按鈕。確定按鈕必須保持禁用狀態,直到選擇一個項目。有沒有一些內置的方式,或者我必須創建自己的自定義對話框?這是目前我有:安卓:創建禁用OK按鈕單項選擇對話框中選中之前

AlertDialog.Builder builder = new AlertDialog.Builder(context); 

builder.setTitle(getString(R.string.lbl_MarkReviewAs)) 
    .setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int item) 
     { 
     selectedReviewStatusIndex = item; 
     AlertDialog alertDialog = (AlertDialog)dialog; 
     alertDialog.getButton(0).setEnabled(true); 
     } 
    }) 
    .setPositiveButton(getString(R.string.lbl_ButtonOK), new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int whichButton) 
     { 
     dialog.dismiss(); 
     } 
    }) 
    .setNegativeButton(getString(R.string.lbl_ButtonCancel), new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int whichButton) 
     { 
     dialog.dismiss(); 
     } 
    }); 

AlertDialog dialog = builder.create(); 
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); 
dialog.show(); 

的這裏的問題是,dialog.getButton(AlertDialog.BUTTON_POSITIVE)返回null。那麼如何訪問正面按鈕?

+0

原來你不能使用getButton,直到執行完dialog.show之後。 – AndroidDev

回答

0

集偵聽器,以項目選中,並啓用「確定」按鈕

0

我的事情最好是繼承ListActivity。這裏是example

要了這種活動(在清單)的組漂亮的風格做出一些對話框(最好的選擇是「@android:風格/ Theme.DeviceDefault.Dialog」)。

<activity android:name="YourDialogActivity" 
    android:label="@string/title" 
    android:theme="@android:style/Theme.DeviceDefault.Dialog"> 
    <intent-filter> 
      ... 
    </intent-filter> 
</activity> 
0

您需要顯示對話框然後禁用按鈕Positive。

AlertDialog dialog = builder.create(); 

dialog.show(); 

dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); 
相關問題