0

私は音楽プレーヤー内に ListView を持っています (ListActivity ではありません)。スタックオーバーフローのすべてを試してみましたが、アイテムをクリックした後、行はまだ別の色ではありません。これはListViewの私のコードです:

        <ListView
            android:id="@+id/myMusicList"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:divider="#242424"
            android:dividerHeight="1dp"
            android:listSelector="@drawable/list_selectorr"
            android:paddingRight="20dp" 
            android:choiceMode="singleChoice"/>

これは私のリストセレクターです:

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

そして行:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:padding="5dp"
    android:focusable="false">
    <TextView 
        android:id="@+id/songTitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="16dp"
        android:padding="10dp"
        android:color="#f3f3f3"
        android:focusable="false"/>
</LinearLayout>

そして、これはコードです:

    ListView musicListView = (ListView) findViewById(R.id.myMusicList);
    musicListView.setSelection(1);
    musicListView.setItemsCanFocus(true);

....

    ListAdapter adapter = new SimpleAdapter(this, songsListData, R.layout.playlist_item, new String[] { "songTitle" }, new int[] { R.id.songTitle });
    musicListView.setAdapter(adapter);

    musicListView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            playSong(position);
            view.setSelected(true);
        }
    });

何が問題なのかわかりません-「singleChoice」を試し、セレクターを別の色に変更し、フォーカス可能に編集しました...

何が問題なのですか?

4

1 に答える 1

0

セレクターを変更してみてください:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@android:color/holo_red_light"/>
    <item android:state_activated="true" android:drawable="@android:color/holo_blue_light"/>
    <item android:state_checked="true" android:drawable="@android:color/holo_blue_light"/>
    <item android:drawable="@android:color/holo_red_light""/>
</selector>
于 2013-08-05T13:58:14.483 に答える