3

我想创建一个包含三个复选框的首选项屏幕;第一个是可点击的,而另外两个在第一个被选中之前是不可点击的。

我怎样才能做到这一点?我看过本教程,但只有一个复选框。谁能帮我?

4

2 回答 2

5
<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);


    }


}    

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

希望这可以帮助。

于 2013-07-04T14:11:03.020 回答
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>
于 2013-07-04T13:55:28.397 回答