我已经扩展TextView
也执行Checkable
。我没有碰过任何TextView
的东西,除了onCreateDrawableState
。此外,我刚刚实施了Checkable方法。 (有删节的清晰度。)TextView扩展; UnsupportedOperationException
public class CheckableTextView extends TextView implements Checkable {
public CheckableTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected int[] onCreateDrawableState(int extraSpace) {
final int[] drawableState = super.onCreateDrawableState(extraSpace + 1);
if (isChecked()) {
mergeDrawableStates(drawableState, CheckedStateSet);
}
return drawableState;
}
它编译于ICS罚款,但在Android 2.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): 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
我似乎无法找出这种类型= 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>
这意味着您将一个属性作为维值传递,可能在您的XML中。我们可以看到你正在膨胀的XML文件吗? – Eric
啊,我真的没有得到这个属性业务。我想我从某个地方的某个例子中复制它。我将如何去硬编码这些属性?这是明智的吗? – Maarten