Я пытаюсь загрузить экран предпочтений, но он, похоже, не отображается. Я могу загрузить Activity, но я не вижу никаких реальных настроек. Я попробовал другое решение на StackOverflow, например добавив setContentView(R.layout.activity_settings);
в SettingsActivity, но не имел успеха.Фрагмент предпочтения, не показывающий предпочтений
SettingsActivity.java
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
public class SettingsActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Display the fragment as the main content.
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
}
}
preferences.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="@string/pref_start"
android:key="pref_key_storage_settings">
<CheckBoxPreference
android:key="pref_key_auto_exit"
android:summary="@string/pref_summary_exit"
android:title="@string/pref_title_exit"
android:defaultValue="false"/>
</PreferenceCategory>
</PreferenceScreen>
SettingsFragment.java
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.view.LayoutInflater;
import android.view.ViewGroup;
public class SettingsFragment extends PreferenceFragment {
public SettingsFragment() {
}
public void onCreate(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
}
Почему «android.R.id.content» не существует в моей текущей деятельности? Я думал, что «андроид.R.id.content» был корневым элементом активности? –
Off topic: вы хотите выполнить транзакцию фрагмента только в том случае, если 'savedInstanceState == null'. Вам нужно сделать это только один раз, когда пользователь откроет активность. После того, как пользователь повернет экран, он останется загруженным. –