java.lang.NumberFormatException: Invalid float: "30.0dp"错误
原因:attrs.xml如下
<declare-styleable name="Title">
<attr name="titles" format="string" />
<attr name="titlecolor" format="color" />
<attr name="titlesize" format="dimension" />
<attr name="leftBackground" format="reference|color" />
<attr name="rightBackground" format="reference|color" />
</declare-styleable>
layout文件:<hy.mingancai.tongqutang.view.ActivityTitles
android:id="@+id/childstar_msg_title_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/lanse"
android:padding="5dp"
title:rightBackground="@drawable/map"
title:titlecolor="@color/white"
title:titles="我的"
title:titlesize="10dp" >
</hy.mingancai.tongqutang.view.ActivityTitles>
自定义文件
TypedArray ta = context
.obtainStyledAttributes(attrs, R.styleable.Title);
float titleSize = ta.getFloat(R.styleable.Title_titlesize, 0);
错误就处在ta.getFloat这个方法中,因为attr文件中titlesize属性的参数类型是dimension,So ,正确的写法是:
float titleSize = ta.getDimension(R.styleable.Title_titlesize, 0);