ListView setSelection并更改当前选定的行text-color

时间:2012-07-06 08:48:42

标签: android android-layout

我正在使用LISTVIEW.setSelection(INT)来选择listview中的某些项目。我还需要在选中的行中切换样式,即更改其中的TextView元素的颜色。我不知道如何处理这个问题。我已经尝试过设置OnItemSelectedListener,但它永远不会被触发。

3 个答案:

答案 0 :(得分:0)

尝试此操作,如果您使用的是ListActivity

View v=getListView().getChildAt(getSelectedItemPosition());
((TextView) v.findViewById(R.id.textViewID)).setTextColor(Color.RED);

答案 1 :(得分:0)

在res / color /中创建一个list_item_color.xml,如下所示:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:color="#FFFFDD"/>
    <item android:color="#979B9E"/>
</selector>

然后在你的布局xml中使用它。 e.g:

    <TextView
    android:id="@+id/list_item_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/list_item_color" />

当您设置选择

时,TextView将自动更改文本颜色

答案 2 :(得分:0)

您可以将此代码用作textview选择器。使用此作为您的文本视图背景。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <color android:color="@color/semitransparent_white" />
    </item>
    <item>
        <color android:color="@color/transparent" />
    </item>
</selector>