相关疑难解决方法(0)

编写新的DialogPreference类的简明方法?

我正在通过扩展DialogPreference类在Android中编写一些自定义首选项对话框.但是,我对这需要的锅炉板代码量有点担心,因为似乎有很多行为需要测试.

例如,一些偏好对话框的这个例子是相当典型: http://svn.jimblackler.net/jimblackler/trunk/workspace/NewsWidget/src/net/jimblackler/newswidget/NumberPreference.java

特别是,onSave()/ RestoreInstanceState()methods和"类SavedState"部分是必需的,以便在方向更改时保留对话框的当前更改是非常冗长和复杂的.

有没有人有更简洁的方式编写DialogPreference类的技巧?

java mobile android

38
推荐指数
1
解决办法
2万
查看次数

从XML创建DialogPreference

我一直试图使用android.preference.DialogPreference从XML中膨胀,但文档似乎缺少一些基本的部分,我无法在任何地方找到一个有效的例子.我的XML现在看起来像这样(我尝试了许多排列,但这似乎是一个合理的最小值):

<DialogPreference
android:key="funThing" android:title="Fun Thing"
android:dialogLayout="@layout/fun_layout"
android:positiveButtonText="OK"
android:negativeButtonText="Cancel"
/>
Run Code Online (Sandbox Code Playgroud)

我在这一点上的假设是它需要子类DialogPreference而不是直接使用它.首先,我找不到将实际偏好值与对话框本身中的元素相关联的方法,这在反射时是一种赠品.而且,看来源DialogPreference.java似乎也证实了这一点.我还注意到官方文档将其称为"基类".但至少,在网上建立一个确定性足够的来源会很有帮助,这将有助于下一个N人比我更快地解决这个问题.

对于记录,日志文件如下所示:

I/ActivityManager(   61): Starting: Intent { cmp=org.jeremy.android/.PreferencesActivity } from pid 2755
W/Resources( 2755): Converting to string: TypedValue{t=0x10/d=0x4b0 a=-1}
W/Resources( 2755): Converting to string: TypedValue{t=0x10/d=0x20 a=-1}
D/AndroidRuntime( 2755): Shutting down VM
W/dalvikvm( 2755): threadid=1: thread exiting with uncaught exception (group=0x40015560)
E/AndroidRuntime( 2755): FATAL EXCEPTION: main
E/AndroidRuntime( 2755): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.jeremy.android/org.jeremy.android.PreferencesActivity}: android.view.InflateException: Binary XML file line #28: Error inflating class …
Run Code Online (Sandbox Code Playgroud)

xml android preference

34
推荐指数
3
解决办法
4万
查看次数

标签 统计

android ×2

java ×1

mobile ×1

preference ×1

xml ×1