2011-08-16 13 views
11

アイテムにタッチしたときにアイテムに黄色い色を表示するリストビューがあります。私は違っやったすべては、リストビューのXMLに背景画像を変更し、今ではもはや私にyellowtintAndroidのリストビューで選択項目がハイライト表示されなくなった

が表示されますここでは、それがバックグラウンドを持つだけのTextViewコード

リストビューxmlですされていません画像:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:textSize="24sp" 
    android:textColor="#000000" 
    android:background="@drawable/bglistitem" 
    android:gravity="center_vertical|center_horizontal"> 
</TextView> 

それは

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:textSize="24sp" 
    android:textColor="#000000" 
    android:background="@drawable/bglistitem" 
    android:gravity="center_vertical|center_horizontal"> 
</TextView> 

と呼ばれ、ここにコードされている別のレイアウトでの場所:

lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {} 
}); 

上記のように、私は選択ハイライトのデフォルト動作を変更することはありませんでした。どうしてこれは違うのでしょうか?

答えて

20

ListViewに新しい背景を追加したときに、セレクタを使用してListItemを状態に応じて色づけする可能性が最も高いデフォルトの背景をオーバーロードします。

は、XMLファイル、mycustombackground.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/item_pressed" /> 
    <item android:state_focused="true" 
     android:drawable="@drawable/item_focused" /> 
    <item android:drawable="@drawable/item_normal" /> 
</selector> 

状態に関連して、独自に@drawablesを交換してください。 次に、リストビューの背景をxmlファイルに設定します。

android:background="@drawable/mycustombackground" 

黄色を作成するには、XMLを調べるか、独自のイメージを作成するだけです。

+0

あなたの洞察のおかげで、私はそれを理解して、可能性を絞りました。画像にアルファベットがあると、黄色の強調表示が行われます。あなたが不透明なイメージを持っているなら、それはハイライトされません – CQM

関連する問題