поэтому я недавно перешел на gradle, теперь мои настраиваемые атрибуты представления возвращают значение null
мой проект выглядит следующим образом
- custom_icon_view//библиотека, содержащая пользовательский вид с настраиваемыми атрибутами --my application//это основное приложение, которое фактически использует пользовательский вид
в моем макете у меня есть пространство имен, определенное следующим образом:
xmlns:iconview="http://schemas.android.com/lib/be.webelite.iconview"
потому что использование apk/res-auto повторяет ошибку, указывающую, что attibutes не может быть идентифицирован
вот как я пытаюсь получить имя значка, определенное в xml, это использовалось для работы отлично но теперь это не так. и все, что я изменил, было перенесено на gradle.
final TypedArray a = context.obtainStyledAttributes(attrs,be.webelite.iconview.R.styleable.icon);
icon_name = a.getString(be.webelite.iconview.R.styleable.icon_name);
поэтому я предполагаю, что мои файлы gradle.build вызывают проблему?
У меня есть библиотека, установленная на
apply plugin: 'android-library'
завершите основное приложение gradle.build как
apply plugin: 'android'
это давало мне головную боль в течение 2 дней:( любая помощь/подсказки очень apperciated.
вот мои gradle файлы
http://pastie.org/private/h57o8nanydosq0dtm6eiq
и вот структура папок
http://pastie.org/private/nvbzomx2zeagdpzt8qqjsq
вот как я объявляю свое представление в xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<!-- tried res-auto didn't work -->
xmlns:iconview="http://schemas.android.com/apk/lib/be.webelite.iconview"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_gray">
<be.webelite.iconview.IconView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
iconview:icon_name="entypo_search"
android:textSize="25dp"/>
attrs.xml в каталоге IconView > res > values
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="icon">
<attr name="name" format="string" />
</declare-styleable>
</resources>