0

白い背景色のアイテムを含むリスト ビューがあります。ユーザーがアイテムをクリックしたときのユーザー インタラクションをより明確にし、背景色を白とは異なるものにしたいと考えています。これをコード( xml なし)で実装するにはどうすればよいですか?

4

3 に答える 3

0

「描画可能」フォルダーにセレクターxmlファイルを作成し、それをアイテムの背景として使用する必要があります。次に例を示します。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

<item 
    android:state_pressed="true"
    android:drawable="@drawable/itemPressedColor" />
<item 
    android:state_pressed="false"
    android:drawable="@drawable/itemNormalColor" />
</selector>

itemPressedColor と itemNormalColor は、同じフォルダーで定義されたドローアブルになります。

于 2013-09-03T13:00:07.007 に答える
0

selector次のようなドローアブルを使用できます。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/red"
          android:state_pressed="true" />
    <item android:drawable="@android:color/white" />
</selector>

そして、このドローアブルをリスト アイテムの背景として設定します。

コードで同じことを行うには、カスタム アダプターを実装し、そのgetView()メソッドで次のようなコードを使用する必要があります。

StateListDrawable selector = new StateListDrawable();
selector.addState(new int[] { android.R.attr.state_pressed }, getResources().getDrawable(R.color.red));
selector.addState(new int[] {}, getResources().getDrawable(R.color.white));
...
View item = ...
item.setBackgroundDrawable(selector);
于 2013-09-03T13:00:26.237 に答える