2017-05-29 3 views
0

私のアプリで設定画面を作成しようとするとError inflating class DropDownPreferenceが表示されます。私はアクションバーにボタンを追加しました。これは、設定フラグメントを含む設定アクティビティを起動することを意味します。これは、like thisを設定します。バイナリXMLファイルの行#13:Error inflating class DropDownPreference

だから私は私のSettingsActivityを持っている:私は、このエラーは、一般的に他の場所のコードで何か間違っを指していることを周りの検索から知っている

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

、私:

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

    } 
} 

、問題のXML私の誤りがどこにあるのか本当に分かりません。これを解決任意の助け

答えて

0

ため

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

ありがとう:これはSettingsActivityを起動することになっている私のMainActivityのコードです。結局のところ、DropDownPreferenceが問題を引き起こしていたことが判明しました。私はそれをもっと調べていませんが、DropDownPreferenceCheckBoxPreferenceに置き換えました。うまくいきます。

関連する問題