Я столкнулся с довольно простой проблемой: я пытаюсь создать экран предпочтений в своем приложении, и я хотел бы сделать это с помощью нового, теперь уже стандартного метода PreferenceFragment.
Это мои настройки xml:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="@string/prefs_interface_settings">
<SwitchPreference
android:key="show_average"
android:title="Show average length of work day"
android:defaultValue="false"
android:summary="Display the calculated average in the app title" />
<EditTextPreference
android:key="edittext_preference"
android:title="@string/workday_duration_prefs_title"
android:summary="summary_edittext_preference"
android:defaultValue="8"
android:dialogTitle="dialog_title_edittext_preference" />
</PreferenceCategory>
</PreferenceScreen>
Это моя активность в настройках
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.widget.Toast;
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
}
}
и, наконец, это мой SettingsFragment:
import android.os.Bundle;
import android.preference.PreferenceFragment;
public class SettingsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
addPreferencesFromResource(R.xml.app_preferences); //Gets settings from XML
}
}
}
Когда я запускаю приложение, если я открываю указанное действие, я получаю пустое, точно так же, как фрагмент не был инициализирован или не показан по какой-то причине. Но код такой простой... Я просто не могу понять, что я делаю не так!
Спасибо всем за вашу помощь
if (getArguments() != null)
. - person Anggrayudi H   schedule 23.03.2015