gpt4 book ai didi

Android CompoundButton Switch jumpDrawablesToCurrentState null 崩溃

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:22 28 4
gpt4 key购买 nike

我有一个成功使用 ToggleButton 的应用程序。我正在转换应用程序以便在 JELLY BEAN (4.1.1) 上使用。 4.1.1 有 Switch 小部件,这是一个更好看的 ToggleButton 小部件。这两个小部件都派生自 CompoundButton

Android 的对比文档在这里:

http://developer.android.com/guide/topics/ui/controls/togglebutton.html

它说:

The ToggleButton and Switch controls are subclasses of CompoundButton and function in the same manner, so you can implement their behavior the same way.

所以我所做的是获取包含 ToggleButton 的 Activity 布局文件,将其复制到目录 res/layout-v14/ 并替换 的所有实例code>ToggleButtonSwitch。这意味着 Android 版本 14 及以上将使用带有 Switch 的布局文件,低于 14 将使用带有 ToggleButton 的布局文件。除小部件名称外,每个 XML 都是相同的。

<Switch
android:id="@+id/settings_some_option_on_off"
android:textOn="@string/settings_toggle_on"
android:textOff="@string/settings_toggle_off"
android:gravity="center"
android:paddingRight="@dimen/size_padding_minor"
android:layout_weight="1"
android:layout_gravity="center"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>

在我的 .java 代码中,我只使用 CompoundButton。根本不使用 ToggleButtonSwitch

private CompoundButton mViewSomeOptionOnOff;
...
mViewSomeOptionOnOff = (CompoundButton) findViewById(R.id.settings_some_option_on_off);
etc.

当我在 < 14 岁时运行,效果很好。和之前一样。我得到了 ToggeButton。当我在 14 上运行时,我在 Android 小部件框架中遇到空崩溃。

我下载了安卓源。从崩溃回溯中,我确切地知道崩溃在哪里。开关.java:

808     @Override
809 public void jumpDrawablesToCurrentState() {
810 super.jumpDrawablesToCurrentState();
811 mThumbDrawable.jumpToCurrentState(); <------ boom
812 mTrackDrawable.jumpToCurrentState();
813 }

thumbSwitch 的新属性。即便如此,我也不应该定义它,对吧?它没有列为强制属性。

作为测试,回到我的 -v14 布局,我将 android:thumb 设置为可绘制对象。然后我在第 812 行,即 track 上点击了 null。我将 android:track 设置为可绘制对象,崩溃消失了。那么这是怎么回事?

为什么我会遇到 null 崩溃?

我是否需要找到默认的 TrackThumb 可绘制对象,并将它们复制到我的应用中?

我正在尝试做的事——使用 ToggleButton 和 Switch——不可能吗?

最佳答案

确保你的 minSdkVersion 在 AndroidManifest.xml 上是 14

关于Android CompoundButton Switch jumpDrawablesToCurrentState null 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12757478/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com