0

1 つの Android アプリケーションを開発する必要があります。

通常の状態では背景色を #424340 で表示する必要がありますが、これらのレイアウト (選択して押された状態) をクリックする必要があるということは、背景色を #FF0000 に変更する必要があることを意味します。これらのために...

プログラムでレイアウトを作成するために以下のコードを使用しました。

LinearLayout ar = new LinearLayout(this);
            ar.setOrientation(LinearLayout.VERTICAL);
            ar.setPadding(3, 3, 3, 3);

            ar.setLayoutParams(artiLayoutParams);
            ar.setGravity(Gravity.CENTER); 
            ar.setBackgroundDrawable(getResources().getDrawable(R.drawable.list_selector));

ここで、これらのレイアウトをクリックすると、背景色が変更されます。したがって、以下のコードを使用してください。確認してください。

list_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- Selector style for listrow -->
 <item 

 android:state_selected="false"
 android:state_pressed="false" 
android:state_focused="false"
android:drawable="@drawable/gradient_bg" />
<item android:state_pressed="true"
android:state_selected="true" 
android:state_focused="true"
android:drawable="@drawable/gradient_bg_hover" />
 </selector>

gradient_bg.xml:

    <?xml version="1.0" encoding="utf-8"?>



  <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
        <stroke android:width="3dp" android:color="#424340" />

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

gradient_bg_hover.xml:

    <?xml version="1.0" encoding="utf-8"?>

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

        <stroke android:width="3dp" android:color="#FF0000" />
         <padding android:left="3dp" android:top="3dp" android:right="3dp"
            android:bottom="3dp" />

        <corners android:radius="4dp" />
        </shape> 

しかし、私の背景色は変わりませんでした。私のコードで何が問題なのですか。助けてください...

4

1 に答える 1

0

あなたの状態は間違っているようです。これを試して、動作するかどうかを確認できますか?

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- Selector style for listrow -->
 <item 
 android:state_pressed="false"
android:drawable="@drawable/gradient_bg" />
<item android:state_pressed="true"
android:drawable="@drawable/gradient_bg_hover" />
 </selector>
于 2013-03-25T14:17:07.910 に答える