如何从声明样式获取双值?

attribute.xml

<declare-styleable name="MeterView">
    <attr name="volume" format="double"/> // Can't resolved format
</declare-styleable>


为meterView分配双精度值

<com.test.example.MeterView
    android:id="@+id/meter1"
    android:layout_width="295dp"
    android:layout_height="150dp"
    app:volume="123456789.01"/>


调用attribute.xml

Double volume = a.getDouble(R.styleable.MeterView_volume); // Can't resolved getDouble

最佳答案

在您的attribute.xml文件中使用float而不是double。不允许加倍。

<declare-styleable name="MeterView">
        <attr name="volume" format="float"/>
</declare-styleable>

a.getFloat(R.styleable.MeterView_volume);


或使用string并将String在运行时转换为double。

<declare-styleable name="MeterView">
            <attr name="volume" format="string"/>
 </declare-styleable>

double d= Double.parseDouble(a.getString(R.styleable.MeterView_volume));

关于android - 如何从“声明式”获得双重值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44750298/

10-10 21:47