【问题标题】:Binary XML file line #13: Error inflating class DropDownPreference二进制 XML 文件第 13 行:膨胀类 DropDownPreference 时出错
【发布时间】:2017-10-29 06:04:54
【问题描述】:

尝试在我的应用中创建设置屏幕时,我收到了 Error inflating class DropDownPreference。我在操作栏中添加了一个按钮,我想启动包含设置片段的设置活动,设置为like this。

所以我有我的 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);
        }

    }
}

还有相关的 XML:

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

我通过四处搜索知道此错误通常指向代码中其他地方的错误,但我真的不确定我的错误可能在哪里。这是我的 MainActivity 中应该启动 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;
}

感谢您的帮助

【问题讨论】:

    标签: java android xml application-settings android-settings


    【解决方案1】:

    解决了这个问题。事实证明,DropDownPreference 最终导致了这个问题。我没有更多地研究它,但我用CheckBoxPreference 替换了DropDownPreference,它工作正常。

    【讨论】:

      猜你喜欢
      • 2015-06-25
      • 2016-01-12
      • 2016-11-02
      • 2018-03-04
      • 2020-03-07
      • 2020-01-15
      • 2011-08-14
      • 2018-04-23
      相关资源
      最近更新 更多