当我从xml切换到GUI以获取首选项布局文件时,出现以下错误:
渲染期间引发异常:com.android.layoutlib.bridge.MockView无法强制转换为android.view.ViewGroup窗口>显示视图>错误日志中记录异常详细信息无法找到以下类: - PreferenceCategory(修复构建路径,编辑XML) - PreferenceScreen(修复构建路径,编辑XML)
我的xml文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<PreferenceCategory
android:title="Activation">
<CheckBoxPreference
android:title="Title1"
android:defaultValue="false"
android:key="checkbox1">
</CheckBoxPreference>
</PreferenceCategory>
<PreferenceCategory
android:title="Option1">
<PreferenceScreen
android:title="Set Option">
<CheckBoxPreference
android:title="ENABLE OPTION"
android:defaultValue="false"
android:summary="text"
android:key="checkboxOption1">
</CheckBoxPreference>
<CheckBoxPreference
android:title="DISPLAY OPTIONS"
android:defaultValue="false"
android:summary="text"
android:key="checkboxDisplay1">
</CheckBoxPreference>
<EditTextPreference
android:title="OPTION2"
android:name="Option2"
android:summary="text"
android:defaultValue="1"
android:key="editOption2">
</EditTextPreference>
<CheckBoxPreference
android:title="OPTION3"
android:defaultValue="false"
android:summary="text"
android:key="checkboxOption3">
</CheckBoxPreference>
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory
android:title="Option4">
<PreferenceScreen
android:title="Set Option4">
<CheckBoxPreference
android:title="OPTION4"
android:defaultValue="false"
android:summary=""
android:key="checkboxOption4">
</CheckBoxPreference>
<CheckBoxPreference
android:title="OPTION5"
android:defaultValue="false"
android:summary="text"
android:key="checkboxOption5">
</CheckBoxPreference>
<EditTextPreference
android:title="OPTION6"
android:name="Option6"
android:summary="text"
android:defaultValue="1"
android:key="editOption6">
</EditTextPreference>
<EditTextPreference
android:title="OPTION7"
android:name="Option7"
android:summary="text"
android:defaultValue="1"
android:key="editOption7">
</EditTextPreference>
<EditTextPreference
android:title="OPTION8"
android:name="Option8"
android:summary="text"
android:defaultValue="1"
android:key="editOption8">
</EditTextPreference>
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory
android:title="OPTION9">
<PreferenceScreen
android:title="Option9">
<EditTextPreference
android:title="Option9"
android:name="Option9"
android:summary="text"
android:defaultValue=""
android:key="editOption9">
</EditTextPreference>
</PreferenceScreen>
</PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激
我遇到这个问题是因为我将偏好列表视为正常活动。实际上是完全不同的。首先,您需要将 XML 文件从 res/layout 移动到 res/xml(在 Eclipse 中,您必须手动创建此文件夹)。您还必须使用不同的 Java 代码:
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class Settings extends PreferenceActivity { //NOT activity!
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Initialize the preference screen defined in /res/xml/preference.xml
addPreferencesFromResource(R.xml.preferences); //NOT setContentView
}
}
Run Code Online (Sandbox Code Playgroud)
对于 API 级别 >=11,您将收到有关 addPreferencesFromResource 已弃用的警告。这是因为 Android 希望您切换到基于片段(“PreferenceFragments”)的首选项屏幕,这要复杂一些。这里有一个例子。
| 归档时间: |
|
| 查看次数: |
4825 次 |
| 最近记录: |