Intereting Posts
Как получить Missed call & SMS count Ошибка при использовании любых элементов библиотеки поддержки дизайна Android Android: изменить цвет с цвета на цвет Могу ли я использовать Corona sdk для создания неигровых приложений? Как сделать обычные ссылки в TextView доступными? Загрузка текстового файла из Интернета Как сделать все ионное приложение Android для работы в качестве фонового сервиса? Должен ли я реализовать onRetainNonConfigurationInstance? Отмена AsyncTask через некоторое время Почему аппаратное ускорение не работает на моем представлении? Включить понижение при установке apk с использованием намерения на Android 4.2+ «Не удается найти модуль с тегом« CocosDenshion / android »в пути импорта» ошибка в приложении cocos2dx Что такое «панель» в Android-окне? Что такое папка с бинами для Android? Использование моей собственной предварительно созданной общей библиотеки в проекте Android NDK

Тег <item> требует атрибута 'drawable'

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

Я попытался сделать это со стилем и селектором.

В моем макете у меня есть эта Button :

  <Button android:id="@+id/button1" style="@style/MyButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/login" /> 

И в res/values/styles меня есть этот styles.xml :

 <style name="MyButton"> <item name="android:background">@drawable/btn_background</item> <item name="android:textColor">@drawable/btn_textcolor</item> </style> 

И, конечно, два селектора, в res/drawable btn_background.xml , btn_background.xml :

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:color="@color/white" /> <item android:color="@color/SapphireBlue" /> </selector> 

И btn_textcolor.xml :

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:color="@color/SapphireBlue" /> <item android:color="@color/white" /> </selector> 

Ошибка, которую я получаю сейчас, когда я либо запускаю приложение, либо открываю редактор макетов:

Тег <item> требует атрибута 'drawable'

Я понимаю сообщение, но у меня нет возможности сделать это, это простая, плоская кнопка.

Как я могу создать такую ​​простую кнопку?

Обновление в соответствии с этим сообщением , оно должно работать.

Solutions Collecting From Web of "Тег <item> требует атрибута 'drawable'"

Попробуйте этот путь, надеюсь, что это поможет вам решить вашу проблему.

btn_background.xml

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/white" android:state_pressed="true"></item> <item android:drawable="@drawable/white" android:state_focused="true"></item> <item android:drawable="@drawable/SapphireBlue" android:state_enabled="true" android:state_focused="false" android:state_pressed="false"></item> <item android:drawable="@drawable/white" android:state_enabled="false"></item> </selector> 

btn_textcolor.xml

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/SapphireBlue" android:state_pressed="true"></item> <item android:color="@drawable/SapphireBlue" android:state_focused="true"></item> <item android:color="@drawable/white" android:state_enabled="true" android:state_focused="false" android:state_pressed="false"></item> <item android:color="@drawable/SapphireBlue" android:state_enabled="false"></item> </selector> 
  • Исходный атрибут ожидает, что он будет доступен, а переносимый селектор должен находиться в одной из папок / папок.
  • Атрибут TextColor ожидает, что цвет и селектор цветов должны находиться в одной из папок / цветов.
 /res/color/my_textcolor_selctor.xml
 /res/drawable/my_background_selector.xml

Также выбираемый селектор должен использовать «android: drawable» для элементов селектора (ресурс цвета может использоваться для значения атрибута, поскольку цвет является переносимым), тогда как селектор цвета должен использовать «android: color» для элементов селектора.

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:drawable="@color/disabledbackgroundColor" /> <!-- default --> <item android:drawable="@color/myBackgroundColor" /> </selector>