我能够在工作中实现它,我现在不记得我是如何实现它的,那是很久以前的事了。如果没有人给你一个好的答案,我明天会发布它:我记得放了一个 Preference,它将作为一个按钮,然后我添加了一个 preferenceClickListener 以便在点击时打开一个新的 PreferenceScreen。但是就像我说的,如果您没有得到满意的答案,我明天会为您发布。
祝你好运!
更新:
?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="Personal"
android:key="personal_category">
<Preference
android:key="birth"
android:title="Birth"
android:summary="Choose your birthday"/>
<PreferenceScreen
android:key="height_imp"
android:title="Height"
android:summary="Enter your height">
<EditTextPreference
android:key="foot"
android:title="Foot"
android:summary="foot"
android:numeric="integer"
android:dialogTitle="Foot"/>
<EditTextPreference
android:key="inch"
android:title="Inch"
android:summary="inch"
android:numeric="integer"
android:dialogTitle="Inch"/>
</PreferenceScreen>
<EditTextPreference
android:key="weight"
android:title="Weight"
android:summary="Enter your weight"
android:numeric="integer"
android:dialogTitle="Weight"/>
</PreferenceCategory>
</PreferenceScreen>
而已!当您单击它时,它将带您进入第二个 PreferenceScreen 等等,最后当您需要自定义布局时,您需要打开一个 Activity。然后,您可以使用 Preference 并添加 onPreferenceClick:
@Override
public boolean onPreferenceClick(Preference preference) {
if(preference == birth){
startActivity(new Intent(getBaseContext(), Birth.class));
}
if(preference == height_imp){
PreferenceScreen a = (PreferenceScreen) preference;
a.getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.WHITE));
return false;
}
return true;
}
如果您需要使用 preferenceScreen 更改背景或其他内容,请同时添加一个 preferenceClickListener:height_imp = (PreferenceScreen)getPreferenceScreen().findPreference("height_imp");
height_imp.setOnPreferenceClickListener(this);