我是 Android 新手,所以我需要一些关于如何以编程方式将EditTextPreference对象添加到我的PreferenceFragment的指导。
我正在从 Web 服务中提取值列表。我已成功将它们保存到我的SharedPreferences中,并使用它们生成 URL(路径部分)。
我希望我的应用程序的用户能够编辑这些值,但是在 Google 上进行大量搜索之后,我不清楚如何以编程方式将EditTextPreference对象添加到我的PreferenceFragment。
请注意,我的PreferenceFragment对于我硬编码为首选项 xml 文件 ( PreferenceScreen )的名称的SharedPreferences值工作正常。我也知道如何获得我的SharedPreferences,所以不必担心必须向我解释那部分。
我在PreferenceFragment的onCreate中使用addPreferencesFromResource。我应该将它们添加到onCreateView吗?我在想我可以得到PreferenceCategory并将它们添加到那里?但同样,我不知道该怎么做。我真的很感激你的帮助!
// 代码
PrefsFragment.java:
package com.example.lorddoineedhelp;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class PrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = super.onCreateView(inflater, container, savedInstanceState);
// I am guessing I need to do something here?
return v;
}
}
PreferenceFragment 的 XML 文件:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Hard coded values -->
<PreferenceCategory
android:title="General">
<CheckBoxPreference
android:key="debug"
android:title="Debug"
android:summary="Enable Debug" />
</PreferenceCategory>
<PreferenceCategory android:title="Address">
<EditTextPreference
android:key="ipAddress"
android:title="IP Address"
android:summary="IP Address used for Image pings"
/>
<EditTextPreference
android:key="port"
android:title="Port"
android:summary="Port used for Image pings" />
</PreferenceCategory>
<!-- Where I want to add the values from my web service -->
<PreferenceCategory
android:title="Paths"
android:key="urlPaths">
</PreferenceCategory>
</PreferenceScreen>