Как мне вызвать конкретный фрагмент PreferenceFragment из PreferenceActivity?
У меня есть PreferenceActivity с несколькими фрагментами:
R.xml.preferences: (сокращено для лучшей читаемости):
[...]
SettingsActivity:
public class SettingsActivity extends PreferenceActivity {
@Override
public void onBuildHeaders(List target) {
loadHeadersFromResource(R.xml.preferences, target);
}
}
Это покажет запись списка с,fragments.Fragment1
fragments.Fragment2
, ... еслиSettingsActivity
запущен
Но теперь я хочу передать Bundle таким образом, чтобы при запуске действия открывался определенный PreferenceFragment:
поэтому я добавил это кSettingsActivity:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null && savedInstanceState.getBoolean("shortcut")) {
// directly jump to fragments.Fragment1
}
}
Я пытался загрузить фрагмент черезgetFragmentManager().findFragmentById(R.id.fragment1)
, но это возвращаетnull
, Но даже если бы у меня был правильный экземпляр, я бы не знал, как его вызвать. Также звонюloadHeadersFromResource(R.xml.preferences_fragment1, target);
не работает - это вызовет исключение RuntimeExceptionXML-документ должен начинаться с тега; foundPreferenceScreen в двоичном XML-файле ", У меня нет идей, а также поиск по SO и Google не дал никаких релевантных результатов.
Поэтому мой вопрос: возможно ли напрямую загрузить PreferenceFragment (например, фрагменты. Fragment1) из Activitiy 's onCreate метод? Если так, то как?