Jestem nowy na Androida, więc trzeba trochę wskazówek, w jaki sposób programowo dodać EditTextPreference obiektów do mojego PreferenceFragment.Jak programowo dodać EditTextPreferences do mojego PreferenceFragment?
Wyciągam listę wartości z usługi internetowej. Zapisałem je z powodzeniem na moim SharedPreferences i używam ich do generowania adresów URL (część ścieżki).
Chciałbym użytkownikom mojej aplikacji, aby móc edytować te wartości, ale po wielu wyszukiwania w Google, to nie jest dla mnie jasne, jak programowo dodać EditTextPreference obiektów do mojego PreferenceFragment .
Należy pamiętać, mój PreferenceFragment działa dobrze dla SharedPreferences wartości I ciężko jak nazwy kodowe do pliku xml preferencji (PreferenceScreen). Wiem również, jak uzyskać moją SharedPreferences, więc nie martw się o to, że musisz mi wyjaśnić tę część.
używam addPreferencesFromResource w onCreate mojego PreferenceFragment. Czy powinienem je dodać w onCreateView? Myślałem, że mogę uzyskać PreferenceCategory i dodać je tam? Ale znowu nie jestem pewien, jak to zrobić. Naprawdę będę wdzięczny za pomoc!
// Kod
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;
}
}
pliku XML dla PreferenceFragment:
<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>
Działa to dobrze w przypadku preferencji bezmlml.W rzeczywistości nie ma potrzeby stosowania fałszywego XML, można go zamiast tego użyć: Ekran PreferenceScreen = getPreferenceManager(). CreatePreferenceScreen (getActivity()); setPreferenceScreen (ekran); – kat