如何使用复选框Android创建设置菜单

时间:2013-07-04 13:49:52

标签: android android-preferences preferenceactivity android-checkbox preferencescreen

我想创建一个首选项屏幕,其中有三个复选框;第一个是可点击的,另外两个是直到第一个被检查。

我该怎么做?我见过this tutorial,但只有一个复选框。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:4)

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
     <PreferenceCategory
           android:summary="@string/summary_category"
           android:title="@string/title_category">
           <CheckBoxPreference
                 android:key="main"
                 android:defaultValue="true"
                 android:summary="@string/summary_main"
                 android:title="@string/title_main" 
          />
          <CheckBoxPreference
                android:key="firstDependent"
                android:summary="@string/summary_firstDependent"
                android:title="@string/title_firstDependent"
                android:dependancy="main"
          />
          <CheckBoxPreference
                android:key="secondDependent"
                android:summary="@string/summary_secondDependent"
                android:title="@string/title_secondDependent"
                android:dependancy="main"
          />
    </PreferenceCategory>
<!--Any other categories include here-->
</PreferenceScreen>

您只需将android:dependancy设置为相应复选框必须依赖的复选框的键即可。

现在在res文件夹中创建一个名为xml的文件夹,并将您的首选项xml文件放在其中。 然后执行以下操作。

public class SettingsActivity extends PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);


    }


}    

您也可以使用更推荐的片段来完成此操作。但上述方法要容易得多。如果您想使用片段执行此操作,请选中this,其中包含有关创建“设置活动”所需的所有信息。

  

希望这会有所帮助。

答案 1 :(得分:3)

你必须像那个例子那样做,但你将有三个checkboxes而不是一个。如果您希望在第一个为真之前禁用两个checkboxes,则可以使用android:dependency属性。使用此属性,您需要指定他们将依赖的首选项的

<PreferenceCategory
    android:summary="..."
    android:title="..." >

    <CheckBoxPreference
        android:defaultValue="true"
        android:key="first"
        android:summary="@string/summary_first"
        android:title="@string/title_first" />

    <CheckBoxPreference
        android:defaultValue="false"
        android:dependency="first"
        android:key="second"
        android:summary="@string/summary_second"
        android:title="@string/title_second" />

    <CheckBoxPreference
        android:defaultValue="false"
        android:dependency="first"
        android:key="third"
        android:summary="@string/summary_third"
        android:title="@string/title_third" />
</PreferenceCategory>