Я хочу использовать файл color.xml для своей кнопки, но он показывает эту ошибку и сбой приложения. Он говорит, что не может найти файл color.xml.

Caused by: android.content.res.Resources$NotFoundException: File res/color/color.xml from drawable resource ID #0x7f0e00dd
  at android.content.res.Resources.loadDrawableForCookie(Resources.java:3783)
  at android.content.res.Resources.loadDrawable(Resources.java:3651)
  at android.content.res.TypedArray.getDrawable(TypedArray.java:762)
  at android.view.View.<init>(View.java:3983)
  at android.widget.TextView.<init>(TextView.java:1021)
  at android.widget.Button.<init>(Button.java:115)
  at android.widget.Button.<init>(Button.java:108)
  at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:62)
  at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:5

Вот моя кнопка xml:

<Button
    android:id="@+id/btn_buy"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:background="@color/color"
    android:textColor="@color/mdtp_white"
    android:text="@string/buy"/>

Это мой color.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:color="@color/grey" />
    <item android:color="@color/myRedColor"/>
</selector>
0
K.Sopheak 6 Сен 2016 в 06:59

5 ответов

Лучший ответ

Наконец, я исправил ошибку. Я выгляжу странно, но это работает. Сначала переместите color.xml в папку для рисования . Затем обновите color.xml следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false">
        <color android:color="@color/grey"/>
    </item>
    <item>
        <color android:color="@color/myRedColor"/>
    </item>
</selector>
0
K.Sopheak 6 Сен 2016 в 05:10

Создайте файл color.xml в папке Drawable.

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

Использовать color.xml в качестве фона в кнопке

<Button
    android:id="@+id/btn_buy"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    // here
    android:background="@drawable/color"
    android:textColor="@color/mdtp_white"
    android:text="@string/buy"/>
2
W4R10CK 6 Сен 2016 в 04:50

Поместите свой файл color.xml в drawable

Внести изменения в файл drawable \ color.xml

<?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/grey" />
    <item android:drawable="@color/myRedColor"/>
</selector>

кнопка xml

<Button
    android:id="@+id/btn_buy"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:background="@drawable/color"
    android:textColor="@color/mdtp_white"
    android:text="@string/buy"/>
1
prakash ubhadiya 6 Сен 2016 в 04:31

Атрибут android:background требует ресурса drawable. Все, что вам нужно сделать, это переместить файл color.xml в папку drawable.

2
TOP 6 Сен 2016 в 04:21

Вставьте файл color.xml в папку с возможностью рисования и добавьте color.xml в качестве фона для вашей кнопки, как это

<Button
    android:id="@+id/btn_buy"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:background="@drawable/color"
    android:textColor="@color/mdtp_white"
    android:text="@string/buy"/>
1
Hasan shaikh 6 Сен 2016 в 04:21