получение строковых типов не разрешено (при ‘paintStroke’ со значением ‘4f’) ошибка для атрибута значения типа float

#android #android-layout #android-custom-view #android-custom-attributes

#Android #android-макет #android-пользовательский вид #android-пользовательские атрибуты

Вопрос:

Я использую пользовательские атрибуты для своего пользовательского представления в моем приложении для Android. Я хочу указать значение с плавающей запятой для моего пользовательского атрибута.

res/values/attrs.xml

  <?xml version="1.0" encoding="UTF-8"?>
     <resources>
      <declare-styleable name="CanvasView">
        <attr name="backgroundColor" format="color"/>
        <attr name="paintColor" format="color"/>
        <attr name="paintStroke" format="float"/>
      </declare-styleable>
     </resources>
  

res/layout/view.xml

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <com.example.canvaspoc.CanvasView
        xmlns:customAttrs="http://schemas.android.com/apk/res/com.example.canvaspoc"
        android:id="@ id/canvas"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        customAttrs:backgroundColor="@android:color/holo_green_light"
        customAttrs:paintColor="@android:color/secondary_text_light"
        customAttrs:paintStroke="4f"/>
</RelativeLayout>
  

Но когда я пытаюсь запустить приложение, оно выдает мне следующую ошибку

Ошибка: (15, 34) Строковые типы не разрешены (при ‘paintStroke’ со значением ‘4f’).

Рабочий фрагмент :

Нам просто нужно указать «4» или «4.0» для пользовательских значений атрибута с плавающей запятой. Нет необходимости добавлять ‘f’ в конце.

Комментарии:

1. зачем вам нужно f в конце?

2. Какие-либо проблемы только с 4 или 4.0?

3. Мне нужно значение с плавающей запятой для этого атрибута, я не пробовал 4. Я подумал, что нам нужно указать ‘f’ в конце для значения с плавающей запятой

4. Вместо этого используйте 4.0!

5. Работает только 4 или 4.0. Спасибо, ребята