2012-04-07 90 views
0

我在撰寫一個應用程序,我想限制從一個用戶組訪問菜單部分。該用戶組沒有精細的運動技能,因此我決定訪問菜單的一個好方法是使用滑塊或其他需要精確手部運動的方法。Android:用於導航的單選按鈕

我一直在嘗試使用單選按鈕來做到這一點;我有3個單選按鈕,並且我想要它們,以便當它們全部被檢查時,它們(單選按鈕)變得不可見,並且允許用戶導航到下一個菜單屏幕的按鈕變得可見。

我一直在閱讀,但我不確定如何做到這一點。任何代碼或提示指向我在正確的方向將不勝感激!

+0

你可能有一個複選框混淆單選按鈕。 http://www.useit.com/alertbox/20040927.html – gobernador 2012-04-07 15:36:23

+0

我不確定你在問什麼?你只想要3個單選按鈕必須同時被選中才能出現按鈕?或者你在談論CheckBoxes?這可以做:) – 2012-04-07 15:36:38

+0

是的,我希望它,以便當您選擇所有三個單選按鈕時,它們變得不可見,並且一個普通的按鈕變得可見。如果這應該使用CheckBox而不是單選按鈕來完成,那麼我對我的缺乏理解表示歉意:P – Daniel 2012-04-07 16:08:51

回答

0

整理出來,使用以下:

在XML:

<CheckBox 
     android:id="@+id/checkBox1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:onClick="onCheckboxClicked" 
     android:text="" /> 

    <CheckBox 
     android:id="@+id/checkBox2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:onClick="onSecondCheckboxClicked" 
     android:visibility="gone"   
     android:text="" /> 

在Java:

public void onCheckboxClicked(View v) { 
    CheckBox cb2 = (CheckBox) findViewById(R.id.checkBox2); 
    // Perform action on clicks, depending on whether it's now checked 
    if (((CheckBox) v).isChecked()) { 
     // Toast.makeText(MainPage.this, "Selected", 
     // Toast.LENGTH_SHORT).show(); 
     cb2.setVisibility(View.VISIBLE); 
    } 
} 

public void onSecondCheckboxClicked(View v2) { 
    Button button = (Button) findViewById(R.id.access_adult_controls); 
    if (((CheckBox) v2).isChecked()) { 
     button.setVisibility(View.VISIBLE); 
    } 
}