8

カスタムアダプタを介して設定しているすべてのListViewアイテムにTextViewがあります。TextView XMLは、ListView XMLが書き込まれたファイルと同じではありません。ListViewのいずれかのアイテムが選択されたときに、その特定のアイテムのフォントの色を変更する必要があります。また、TextViewのさまざまな状態、つまり選択、フォーカス、および押された状態を定義することによってこれを試しましたが、それでも問題は解決しません。その解決策をいくつか提案してください。これがスニペットです。

たとえば、1つのxmlファイル内のlisteview。file1.xml

<ListView
    android:id="@+id/listView1"
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="0.5"
    android:clickable="true" />

および異なるxmlのTextView..すなわちfile2.xml

<TextView
    android:id="@+id/rowListTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingBottom="10dp"
    android:paddingLeft="10dp"
    android:paddingTop="10dp"
    android:text="@string/app_name"
    android:textColor="@color/file3"
    android:textSize="10sp"
    android:textStyle="bold" />  

res/colorフォルダ内のテキストcolor属性のファイル。つまりfile3.xml。

<item android:state_selected="true" android:color="@android:color/white"/>
<item android:state_focused="true"  android:color="@android:color/white"/>
<item android:state_pressed="true"  android:color="@android:color/white"/>
<item android:color="@android:color/black"/>

4

3 に答える 3

22

textColor のこの色状態リストを試してください。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#fff"/>
    <item android:state_activated="true" android:color="#fff"/>
    <item android:color="#000" />
</selector>

Androidガイドには属性については言及されていませんstate_activatedが、私にとってはうまくいきます。

于 2013-10-23T18:09:49.743 に答える
7

以下のスニペットが役立ちます。

listView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView <? > adapterView, View rowView,
    int position, long id) {
        TextView textView = (TextView) rowView.findViewById(R.id.rowListTextView);

        textView.setTextColor("Desired Color");

    }
});

リストをスクロールしたときにテキストの色を保持し、選択したアイテムがフォーカスから外れるようなシナリオは含めていません。このスニペットは、正しい方向に導きます。

于 2012-11-22T06:18:57.427 に答える