2017-05-29 2 views
0

Ich bekomme eine Error inflating class DropDownPreference beim Versuch, einen Einstellungsbildschirm in meiner App zu erstellen. Ich habe meiner Aktionsleiste eine Schaltfläche hinzugefügt, mit der ich die Einstellungsaktivität starten möchte, die ein Einstellungsfragment enthält, und zwar like this.Binäre XML-Datei Zeile # 13: Fehler beim Aufblasen der Klasse DropDownPreference

So habe ich meine 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); 
     } 

    } 
} 

Und die XML in Frage:

<?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> 

ich von der Suche um wissen, dass dieser Fehler weist in der Regel etwas falsch an anderer Stelle im Code, aber ich bin mir wirklich nicht sicher wo mein Fehler sein könnte. Dies ist der Code in meinem MainActivity, die angeblich die SettingsActivity zu starten:

@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; 
} 

Vielen Dank für jede Hilfe

Antwort

0

Gelöst dies. Es stellt sich heraus, dass die DropDownPreference das Problem schließlich verursacht hat. Ich habe es nicht mehr untersucht, aber ich habe die DropDownPreference durch eine CheckBoxPreference ersetzt und es funktioniert gut.

Verwandte Themen