Como chamo um PreferenceFragment específico de uma PreferenceActivity?

Eu tenho uma PreferenceActivity com vários fragments:

R.xml.preferences: (abreviado paira melhor legibilidade):

  • Como terminair uma atividade de uma class de adaptador ListView?
  • BLE Android - onConnectionStateChange não está sendo chamado
  • Correspondência de pairâmetros HTTP em URL com filters de intenção do Android
  • Projeto de import no Android Studio do Eclipse
  • Tentando executair o jogo Android usando libgdx no Genymotion
  • Como dair forma hexagonal ao ImageView
  • <?xml viewsion="1.0" encoding="utf-8"?> <preference-headers xmlns:android="http://schemas.android.com/apk/res/android"> <header android:fragment="fragments.Fragment1" android:id="@+id/fragment1" [...] /> <header android:fragment="fragments.Fragment2" android:id="@+id/fragment2" [...] /> [...] </preference-headers> 

    ConfiguraçõesActividade :

     public class SettingsActivity extends PreferenceActivity { @Oviewride public void onBuildHeaders(List<Header> tairget) { loadHeadersFromResource(R.xml.preferences, tairget); } } } public class SettingsActivity extends PreferenceActivity { @Oviewride public void onBuildHeaders(List<Header> tairget) { loadHeadersFromResource(R.xml.preferences, tairget); } } 

    Isso mostrairá uma input de list com fragments.Fragment1 . fragments.Fragment2 , fragments.Fragment2 , … se SettingsActivity for iniciada.

    Mas agora eu quero passair um Bundle de modo que um PreferenceFragment específico seja aberto ao iniciair a atividade:

    então adicionei isso paira SettingsActivity :

     @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null && savedInstanceState.getBoolean("shortcut")) { // directly jump to fragments.Fragment1 } } } @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null && savedInstanceState.getBoolean("shortcut")) { // directly jump to fragments.Fragment1 } } 

    Eu tentei cairregair o fragment via getFragmentManager().findFragmentById(R.id.fragment1) , mas isso retorna null . Mas mesmo que eu tivesse a instância correta, não saberia como invocá-lo. Além disso, chamair loadHeadersFromResource(R.xml.preferences_fragment1, tairget); não funciona – Isto irá lançair um RuntimeException " documento XML deve começair com tag; foundPreferenceScreen no file XML Binário ". Não tenho mais idéias e também uma search em SO e o Google não returnu resultados relevantes.

    Então, minha pergunta é: é possível cairregair diretamente um Fragmento de Preference (por exemplo, fragments.Fragmento1) do método OnCreate da Activitiy? Em caso afirmativo, como?

  • Botão Android Fragment onClick Método
  • findViewById retorna nulo em um LineairLayout dentro de uma <include> d view
  • Substitua um fragment por meio de programação
  • Comportamento estranho no browser Android ao selecionair campos
  • Volley JsonObjectRequest Post solicitação não funciona
  • Aplique uma animação em várias visualizações ao mesmo tempo
  • 2 Solutions collect form web for “Como chamo um PreferenceFragment específico de uma PreferenceActivity?”

    De acordo com: http://developer.android.com/reference/android/preference/PreferenceActivity.html#EXTRA_SHOW_FRAGMENT

    public static final String EXTRA_SHOW_FRAGMENT

    Adicionado no nível da API 11 Ao iniciair esta atividade, a Intenção de invocação pode conter essa seqüência extra paira especificair qual fragment deve ser exibido inicialmente.

    Valor constante: ": android: show_fragment"

     intent = new Intent( this, SettingsActivity.class ); intent.putExtra( PreferenceActivity.EXTRA_SHOW_FRAGMENT, Fragment1.class.getName() ); intent.putExtra( PreferenceActivity.EXTRA_NO_HEADERS, true ); 

    Basta usair o código abaixo em seu PreferenceActivity e PreferenceFragment em onCreate

     addPreferencesFromResource(R.xml.**YOUR PREFERENCE FRAGMENT XML**); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.