Intereting Posts
Android IntentService не может создавать экземпляр класса; Нет пустого конструктора Альтернативы window.scrollMaxY? Рассчитайте опору между двумя точками (lat, long) Показать и скрыть представление с помощью анимации слайдов вверх / вниз Вызов метода после 5 миллисекунд Приложение не будет выполняться на новом Android Studio 2.2 с градиентом 2.14.1 с включенным Instant Run Проблема с упаковкой Android: resources.ap_ не существует Как записать аудиофайл в Android Сложность переноса исходного кода выхода PCM с Java на Android AudioTrack API Как добавить CustomView к моей пользовательской клавиатуре в Android, как GIF-клавиатура Невозможно выполнить xmpp-соединение между моим сервером приложений и CCS GCM, используя библиотеку XMPPHP Новый PhoneGap 3.0 Импорт org.apache.cordova невозможен. Поддержка Android v7 MediaRouter иногда не работает должным образом API Google Place для парковки Есть ли способ сохранить изображение полного размера, возвращенное из активности камеры во внутренней памяти?

Тег <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>