二进制XML文件行#13:错误输出类DropDownPreference

时间:2017-05-29 02:24:32

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

尝试在我的应用中创建设置屏幕时,我收到了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;
}

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

解决了这个问题。事实证明DropDownPreference导致了问题。我没有对它进行更多调查,但我将DropDownPreference替换为CheckBoxPreference并且工作正常。