2017-05-29 4 views
0

Je reçois un Error inflating class DropDownPreference lorsque j'essaie de créer un écran de paramètres dans mon application. J'ai ajouté un bouton à ma barre d'action que je veux lancer l'activité des paramètres qui contient un fragment de paramètres, mis en place like this.Ligne de fichier XML binaire # 13: Erreur lors du gonflement de la classe DropDownPreference

J'ai mon SettingsActivity:

public class SettingsActivity extends Activity { 
    @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(); 
    } 

    public static class SettingsFragment extends PreferenceFragment { 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      // Load the preferences from an XML resource 
      addPreferencesFromResource(R.xml.preferences); 
     } 

    } 
} 

Et le XML en question:

<?xml version="1.0" encoding="utf-8"?> 

<PreferenceScreen 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:title="@string/pref_title" 
android:layout_height="match_parent" 
android:layout_width="match_parent"> 

<PreferenceCategory 
    android:key="pref_video" 
    android:title="@string/pref_video_title"> 

    <DropDownPreference 
     android:key="pref_video_quality" 
     android:title="@string/pref_video_quality" 
     android:summary="@string/pref_summary_video_quality" 
     android:entries="@array/pref_entries_video_quality" 
     android:entryValues="@array/pref_entries_video_quality" /> 

</PreferenceCategory> 

</PreferenceScreen> 

Je sais de recherche autour que cette erreur indique généralement un problème ailleurs dans le code, mais je Je ne sais vraiment pas où mon erreur pourrait être. Voici le code dans mon MainActivity qui est censé lancer le SettingsActivity:

@Override 
public boolean onCreateOptionsMenu(Menu menu){ 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item){ 
    switch (item.getItemId()) { 
     case R.id.preferences: 
      // Code to show SettingsActivity 
      Intent intent = new Intent(this, SettingsActivity.class); 
      startActivity(intent); 
      break; 
     default: 
      break; 
    } 

    return true; 
} 

Merci pour toute aide

Répondre

0

résolu ce problème. Il s'avère que le DropDownPreference causait le problème après tout. Je n'ai pas examiné plus, mais j'ai remplacé le DropDownPreference avec un CheckBoxPreference et cela fonctionne bien.