0

プログラムで背景btn_solve_selector.xmlを設定するために、Drawable フォルダーにファイルがあります。Button

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
      android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
      android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff0000ff"/> <!-- default -->
</selector>

上記のコードで、以下のコードをonCreateofにコーディングしましたMyActivity

    _button1.setBackgroundResource(R.drawable.btn_solve_selector);

しかし、スタックトレースをたどってアプリがクラッシュしました。

Caused by: android.content.res.Resources$NotFoundException: File res/drawable/btn_solvenow_selector.xml from drawable resource ID #0x7f020085
....
at com.MyPackage.MyActivity.setMode(MyActivity.java:343)
....
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #4: <item> tag requires a 'drawable' attribute or child tag defining a drawable
....

ドローアブル xml ファイルが含まれていても読み取りに失敗し<item />、フォールバックして android.content.res を 2 回目の試行として読み取るようです。(代わりにチェックしcom.MyPackage.R.drawable.btn_solve_selectorましたが失敗しました)。

アプリを削除して再インストールしましたが失敗しました。私は何が欠けていますか?

4

2 に答える 2

2

android:drawableセレクターxmlファイルの代わりに使用してみてandroid:colorください。私にとってはうまくいきます。

プロジェクトもクリーニングしてみてください

于 2013-06-03T07:16:53.017 に答える
1

これを使って-

    <selector
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="false">
    <shape>
            <gradient
                android:startColor="#E51400"
                android:endColor="#E51400"
                />
              <stroke
                android:width="3dp"
                android:color="#FFFFFF" />
              <corners
                android:radius="10dp" />

                <padding
                android:left="5dp"
                android:top="4dp"
                android:right="5dp"
                android:bottom="4dp" />

        </shape>
</item>

  <item android:state_pressed="true">
    <shape>
            <gradient
                android:startColor="#4AA038"
                android:endColor="#72C437"
               />

             <stroke
                android:width="3dp"
                android:color="#FFFFFF" />

             <corners
                android:radius="10dp" />
               <padding
                android:left="5dp"
                android:top="4dp"
                android:right="5dp"
                android:bottom="4dp" />

        </shape>
</item>



</selector>
于 2013-06-03T07:23:23.750 に答える