3

我的布局中有一些文本视图。我想更改所选文本视图的颜色。我认为 textview 是不可选择的,但无论如何我可以设置释放状态的背景吗?

这是我的文本视图:

<TextView
                android:id="@+id/langDutch"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/item_selected"
                android:clickable="true"
                android:drawableLeft="@drawable/bg_settings_dutchon_hc_2x"
                android:drawablePadding="10dp"
                android:focusable="true"
                android:gravity="center_vertical"
                android:onClick="onlanguageSelect"
                android:padding="10dp"
                android:text="Dutch"
                android:textColor="#454C52" />

这是我的 item_selected.xml:

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

    <item android:drawable="@color/background_grey" android:state_pressed="true"/>
    <item android:drawable="@color/background_hc" android:state_focused="true"/>
    <item android:drawable="@color/background_bf" android:state_selected="true"/>

</selector>
4

4 回答 4

-1

您可以定义一个默认的默认状态,只要给定的状态都不为真,就会使用该默认状态。见下文 - 当没有其他状态为真时,使用最后一项。

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

    <item android:drawable="@color/background_grey" android:state_pressed="true"/>
    <item android:drawable="@color/background_hc" android:state_focused="true"/>
    <item android:drawable="@color/background_bf" android:state_selected="true"/>
    <item android:drawable="@color/background_released"/>

</selector>
于 2013-08-08T14:52:08.317 回答
-1

在 onclick for textview 中,您必须调用 setSelected(true) 进行查看。然后它会渲染 state_select 颜色

onclick(View v){
 v.setSelected(true);
}
于 2013-08-08T15:03:50.497 回答
-1

首先在布局中更改它,以便使用选择器:

android:background="@drawable/item_background"

然后在其中写下这个(考虑到你只想要背景,当它被取消选择和默认时):

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

这些是针对两种可能的状态 - 集中和不受关注(按下/未按下)。

于 2013-08-08T14:49:06.090 回答
-1

您可以添加onClickListneraTextView并更改背景,如下所示:

textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                v.setBackgroundColor(color);
            }
        });
于 2013-08-08T14:50:42.580 回答