Java 文本视图扩展;不支持操作异常

Java 文本视图扩展;不支持操作异常,java,android,android-layout,android-view,Java,Android,Android Layout,Android View,我扩展了TextView,也实现了Checkable。我没有碰过任何TextView东西,除了onCreateDrawableState。此外,我刚刚实现了可检查的方法。(为了清晰起见,进行了删节。) 它在ICS上编译得很好,但在Android2.3中,当程序试图放大这个视图时,我遇到了一个非常奇怪的错误 10-31 00:51:20.414: E/AndroidRuntime(601): FATAL EXCEPTION: main 10-31 00:51:20.414: E/AndroidRu

我扩展了
TextView
,也实现了
Checkable
。我没有碰过任何
TextView
东西,除了
onCreateDrawableState
。此外,我刚刚实现了可检查的方法。(为了清晰起见,进行了删节。)

它在ICS上编译得很好,但在Android2.3中,当程序试图放大这个视图时,我遇到了一个非常奇怪的错误

10-31 00:51:20.414: E/AndroidRuntime(601): FATAL EXCEPTION: main
10-31 00:51:20.414: E/AndroidRuntime(601): android.view.InflateException: Binary XML file line #3: Error inflating class net.blackenvelope.utrechtafval.map.layouts.CheckableTextView

10-31 00:51:20.414:E/AndroidRuntime(601):由以下原因引起:java.lang.reflect.InvocationTargetException
10-31 00:51:20.414:E/AndroidRuntime(601):在java.lang.reflect.Constructor.constructNative(本机方法)中
10-31 00:51:20.414:E/AndroidRuntime(601):位于java.lang.reflect.Constructor.newInstance(Constructor.java:415)
10-31 00:51:20.414:E/AndroidRuntime(601):在android.view.LayoutInflater.createView(LayoutInflater.java:505)
10-31 00:51:20.414:E/AndroidRuntime(601):。。。还有45个
10-31 00:51:20.414:E/AndroidRuntime(601):原因:java.lang.UnsupportedOperationException:无法转换为维度:type=0x2
10-31 00:51:20.414:E/AndroidRuntime(601):在android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:463)
10-31 00:51:20.414:E/AndroidRuntime(601):在android.view.view.(view.java:1963)
10-31 00:51:20.414:E/AndroidRuntime(601):在android.widget.TextView。(TextView.java:344)
10-31 00:51:20.414:E/AndroidRuntime(601):在android.widget.TextView。(TextView.java:337)
10-31 00:51:20.414:E/AndroidRuntime(601):在net.app.layouts.CheckableTextView.(CheckableTextView.java:11)
10-31 00:51:20.414:E/AndroidRuntime(601):。。。48多
我似乎不知道这个类型=0x2意味着什么

以下是XML:

<?xml version="1.0" encoding="utf-8"?>

<app.CheckableTextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/overlay_type_title"
    android:layout_width="match_parent"
    android:background="@drawable/overlay_list_bg_selector"
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/overlay_list_icon"
    android:drawablePadding="10dp"
    android:gravity="center_vertical"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:paddingLeft="10dp"
    android:paddingRight="?android:attr/listPreferredItemPaddingRight"
    android:textAppearance="?android:attr/textAppearanceListItemSmall" 
    >
</app.CheckableTextView>

?android:attr/ListPreferredItemAddingLeft
?android:attr/ListPreferredItemAddingRight
仅在API 14+(ICS和更高版本)中可用。因此,它不是将其解释为API 9-10(2.3)中的维度

我建议使用你自己的价值观。如果您熟悉资源文件,请添加一个填充值类似于您在ICS上看到的填充值的
属性,然后引用该属性


如果您不熟悉自定义XML值,请查看。

这意味着您正在将属性作为维度值传递,可能是在XML中传递。我们能看到你膨胀的XML文件吗?啊,我真的不明白这个属性。我想我是从某处的某个例子中复制过来的。我将如何对这些属性进行硬编码?这是否明智?是否有一种方法可以通过尝试和错误以外的其他方式获得ICS值?比如找到源代码?我知道它们在源代码的某个地方,但不确定在哪里。但是,您可以使用
activity.getTheme().resolveAttribute(android.R.attr.your_attribute_name_here,value,true)以获取值。举个例子。
10-31 00:51:20.414: E/AndroidRuntime(601): Caused by: java.lang.reflect.InvocationTargetException
10-31 00:51:20.414: E/AndroidRuntime(601):  at java.lang.reflect.Constructor.constructNative(Native Method)
10-31 00:51:20.414: E/AndroidRuntime(601):  at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
10-31 00:51:20.414: E/AndroidRuntime(601):  at android.view.LayoutInflater.createView(LayoutInflater.java:505)
10-31 00:51:20.414: E/AndroidRuntime(601):  ... 45 more
10-31 00:51:20.414: E/AndroidRuntime(601): Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x2
10-31 00:51:20.414: E/AndroidRuntime(601):  at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:463)
10-31 00:51:20.414: E/AndroidRuntime(601):  at android.view.View.<init>(View.java:1963)
10-31 00:51:20.414: E/AndroidRuntime(601):  at android.widget.TextView.<init>(TextView.java:344)
10-31 00:51:20.414: E/AndroidRuntime(601):  at android.widget.TextView.<init>(TextView.java:337)
10-31 00:51:20.414: E/AndroidRuntime(601):  at net.app.layouts.CheckableTextView.<init>(CheckableTextView.java:11)
10-31 00:51:20.414: E/AndroidRuntime(601):  ... 48 more
<?xml version="1.0" encoding="utf-8"?>

<app.CheckableTextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/overlay_type_title"
    android:layout_width="match_parent"
    android:background="@drawable/overlay_list_bg_selector"
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/overlay_list_icon"
    android:drawablePadding="10dp"
    android:gravity="center_vertical"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:paddingLeft="10dp"
    android:paddingRight="?android:attr/listPreferredItemPaddingRight"
    android:textAppearance="?android:attr/textAppearanceListItemSmall" 
    >
</app.CheckableTextView>