- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 PreferenceActivity(我的目标是 API 级别 8)向我的应用程序添加设置,我一开始只有一个复选框:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:key="pref_fps"
android:title="FPS"
android:defaultValue="false" />
</PreferenceScreen>
我的 PreferenceActivity 子类只定义了一个“onCreate”方法:
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
一开始似乎一切正常,但我注意到在应用程序重新启动后首选项丢失了。查看日志,似乎无法将首选项保存到磁盘。每次单击 PreferenceActivity 中的复选框时,都会出现此异常:
W/ApplicationContext( 9542): writeFileLocked: Got exception:
W/ApplicationContext( 9542): java.io.UnsupportedEncodingException: utf-8
W/ApplicationContext( 9542): at com.android.internal.util.FastXmlSerializer.setOutput(FastXmlSerializer.java:297)
W/ApplicationContext( 9542): at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:181)
W/ApplicationContext( 9542): at android.app.ContextImpl$SharedPreferencesImpl.writeFileLocked(ContextImpl.java:2928)
W/ApplicationContext( 9542): at android.app.ContextImpl$SharedPreferencesImpl.access$300(ContextImpl.java:2676)
W/ApplicationContext( 9542): at android.app.ContextImpl$SharedPreferencesImpl$EditorImpl.commit(ContextImpl.java:2861)
W/ApplicationContext( 9542): at android.preference.Preference.tryCommit(Preference.java:1198)
W/ApplicationContext( 9542): at android.preference.Preference.persistBoolean(Preference.java:1403)
W/ApplicationContext( 9542): at android.preference.CheckBoxPreference.setChecked(CheckBoxPreference.java:154)
W/ApplicationContext( 9542): at android.preference.CheckBoxPreference.onClick(CheckBoxPreference.java:143)
W/ApplicationContext( 9542): at android.preference.Preference.performClick(Preference.java:810)
W/ApplicationContext( 9542): at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:198)
W/ApplicationContext( 9542): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
W/ApplicationContext( 9542): at android.widget.ListView.performItemClick(ListView.java:3382)
W/ApplicationContext( 9542): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696)
W/ApplicationContext( 9542): at android.os.Handler.handleCallback(Handler.java:587)
W/ApplicationContext( 9542): at android.os.Handler.dispatchMessage(Handler.java:92)
W/ApplicationContext( 9542): at android.os.Looper.loop(Looper.java:144)
W/ApplicationContext( 9542): at android.app.ActivityThread.main(ActivityThread.java:4937)
W/ApplicationContext( 9542): at java.lang.reflect.Method.invokeNative(Native Method)
W/ApplicationContext( 9542): at java.lang.reflect.Method.invoke(Method.java:521)
W/ApplicationContext( 9542): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
W/ApplicationContext( 9542): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
W/ApplicationContext( 9542): at dalvik.system.NativeStart.main(Native Method)
W/ApplicationContext( 9542): Caused by: java.nio.charset.UnsupportedCharsetException: The unsupported charset name is "utf-8".
W/ApplicationContext( 9542): at java.nio.charset.Charset.forName(Charset.java:544)
W/ApplicationContext( 9542): at com.android.internal.util.FastXmlSerializer.setOutput(FastXmlSerializer.java:292)
W/ApplicationContext( 9542): ... 22 more
在模拟器和真实设备上的行为是一样的。
我做错了什么?
最佳答案
在花了更多时间调试我的应用程序后,我终于发现了问题所在:我正在使用 native 库,而这个库正在对位于 0x80000000< 的固定内存位置执行
.mmap
/
在固定位置执行 mmap
并不是一个好主意。在我们的例子中,它似乎覆盖了应用程序的可用字符集。这就是 PreferenceActivity
无法将文件保存到磁盘的原因。
关于android - 为什么 PreferenceActivity 会抛出 UnsupportedEncodingException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16852622/
在我的配置 Activity 中,我需要创建一个首选项屏幕,顶部有一个固定 View ,显示页面中配置的内容的预览。我不想更改主首选项屏幕(我已经有一个单独的 Activity )我想要一个不同的“嵌
我有这样的偏好选项: public class Opciones extends PreferenceActivity { @Override public void onCreate
我正在尝试使用以下代码在首选项 Activity 中设置工具栏。它确实显示了工具栏,但它覆盖了首选项列表。 Here来 self 的应用程序的屏幕截图链接我正在做这个 bcz 我正在运行时更改样式主题
我用谷歌搜索但没有找到显示 android 中 PreferenceActivities 生命周期的等效流程图。这样的流程图存在吗?显示基本 Activity 生命周期的那个对理解 Activity
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.emphie.fod/org.emphie.fod.pre
使用 Android 注释。我的偏好: @SharedPref(value = SharedPref.Scope.APPLICATION_DEFAULT) public interface MyPre
我是 android 开发的新手,我正在尝试弄清楚如何将用户带到我的 PreferenceActivity。我已经创建了一个具有相应布局的 Preferences 类,但是我无法弄清楚如何在没有物理菜
我最近接触了 PreferenceActivity,我想改变我处理与 xml 中定义的 EditTextPreference 交互的方式。 我已经在样板文件覆盖 onListItemClick( 的地
我试图在单击后退按钮后关闭首选项 Activity ..但是当我按下它然后单击多任务按钮时,我看到为我的应用程序打开了两个 Activity ,一个是我当前正在使用的 Activity ,另一个是 p
我读了http://developer.android.com/reference/android/app/Activity.html但我对 PreferenceActivity 生命周期有疑问: P
我正在编写一个带有 PreferenceFragment 的 PreferenceActivity,当设备的方向发生变化时(即从横向到纵向),将抛出一个 InstantiationException反
我看到一些应用程序在某些应用程序的设置中有弹出窗口(如果您在 Google Play 的设置中单击“开源许可证”)和搜索栏(通常用于音量和字体大小)。 这些是如何实现的?在res/xml/pref.x
我正在实现 PreferenceActivity,它会要求用户输入用户名和密码。我将使用 EditTextPreference 作为用户名,但我需要什么元素才能有“密码输入”,这将隐藏输入的数据(即更
在我的 android 应用程序中,我想制作一个反馈对话框,该对话框将在应用程序第二次启动时显示。我怎样才能做到这一点 ?我可以通过 PreferenceActivity 中的变量来完成吗?如果pre
我最重要的问题是:在 Android 中 PreferenceActivity , 我怎样才能写一个 OnClickListener当我浏览 PreferenceScreen 时,这将具有与按 And
我有一个 MainActivity 和一个从该 Activity 调用的 PreferenceActivity。我还有一项服务正在运行以查询这些首选项。 当我打印这些值时。我明白了: D/pref_s
在我的应用程序中,我想在我的应用程序中使用特定首选项时显示警告。我试过使用 PreferenceActivity.onPreferenceTreeClick 和 onPreferenceClickLi
我有这样一段代码:)我想编辑我的自定义首选项布局的文本属性。但是从 getView 函数对对象所做的任何更改都不会影响首选项屏幕中的实际列表。有任何想法吗?我知道我不能扩展 PreferenceScr
我有一个扩展 Preference 的自定义类,我将它与 PreferenceActivity 结合使用。 当我尝试调整我的 Preference 正在使用的布局中的高度(使用静态 layout_he
在PreferenceActivity中使用一个preference文件(而不是默认的共享preferences)的方法如下: public class MyPreferencesActivity e
我是一名优秀的程序员,十分优秀!