我的布局中有一些textview。我想更改所选textview的颜色。我认为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>
答案 0 :(得分:-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>
这些是针对两种可能的状态 - 聚焦和不合理(按下/未按下)。
答案 1 :(得分:-1)
您可以将onClickListner
添加到TextView
并更改背景,如下所示:
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setBackgroundColor(color);
}
});
答案 2 :(得分:-1)
您可以定义默认的默认状态,只要没有给定的状态为true,就会使用默认状态。见下文 - 当其他任何状态均为真时,使用最后一项。
<?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>
答案 3 :(得分:-1)
在forclick for textview中,您必须为视图调用setSelected(true)。 然后它将呈现state_select颜色
onclick(View v){
v.setSelected(true);
}