要通过代码动态修改PreferenceCategory的内容,你可以使用Android的PreferenceGroup和Preference类。以下是一个简单的示例,展示了如何在Activity中动态添加、修改和删除PreferenceCategory及其子项。
res/xml目录下创建一个名为preferences.xml的文件,其中包含一个PreferenceCategory和一些Preference项:<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:key="category1" android:title="Category 1"> <Preference android:key="pref1" android:title="Preference 1" /> <Preference android:key="pref2" android:title="Preference 2" /> </PreferenceCategory> </PreferenceScreen> public class SettingsActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } } PreferenceCategory的内容,你可以使用以下方法:private void updatePreferences() { // 获取PreferenceCategory PreferenceCategory category1 = (PreferenceCategory) findPreference("category1"); // 添加新的Preference Preference newPref = new Preference(this); newPref.setKey("pref3"); newPref.setTitle("New Preference 3"); category1.addPreference(newPref); // 修改现有的Preference Preference pref1 = (Preference) findPreference("pref1"); pref1.setTitle("Updated Preference 1"); // 删除现有的Preference Preference pref2 = (Preference) findPreference("pref2"); category1.removePreference(pref2); } updatePreferences()方法,例如在按钮点击事件中:Button updateButton = findViewById(R.id.update_button); updateButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { updatePreferences(); } }); 这样,你就可以通过代码动态修改PreferenceCategory的内容了。请注意,这个示例是针对Android X的,如果你使用的是旧版的Android支持库,可能需要稍作调整。