как изменить цвет textView из селектора - PullRequest
0 голосов
/ 03 января 2012

У меня есть LinearLayout с textView.

Я установил фон LinearLayout из селектора

android:background="@drawable/tab_bg_selector"

, поэтому при нажатии на макет он меняет цвет фона

моя проблемаКак изменить цвет текста также при нажатии макета

Мне нужно что-то вроде onStateChangeListner, поэтому, когда пользователь нажимает макет, он также меняет цвет текста

спасибо,

Томер

Ответы [ 5 ]

4 голосов
/ 12 июня 2012

Дубликат Как сделать дочерний TextView формы белым, когда state_pressed = "true" , что в значительной степени правильный ответ.duplicateParentState = "true" передает родительское состояние выбора ListView дочернему элементу TextView.У меня сработало следующее:

<TextView
    android:duplicateParentState="true"
    android:textColor="@drawable/text_selector"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

и выбор текста:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:color="@color/text_on" /> <!-- pressed -->
    <item android:state_focused="true"
        android:color="@color/text_on" /> <!-- focused -->
    <item android:color="@color/text_off" /> <!-- default -->
</selector>
3 голосов
/ 03 января 2012

вставьте это в клик Layout

textview.setTextColor (цвет);

1 голос
/ 04 января 2012

Вы можете установить цвет для textview двумя способами используя тег xml "android: textcolor =" colorvalue " или же установить цвет методом "textview object.setTextColor (colorname)" в коде Java.

1 голос
/ 03 января 2012

Просто попробуйте с этим кодом -

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}
public void clickme(View view)
{
    TextView tv = (TextView)findViewById(R.id.textView1);
    tv.setTextColor(Color.RED);             
}

Main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:onClick="clickme"
android:orientation="vertical" >


<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>

Попробуйте это с вашим селектором.

0 голосов
/ 05 февраля 2014

в том, что есть одно решение Сначала создайте два изображения разного цвета фона с цветом текста секунда устанавливает селектор, как вы применяете в выше, как

android:background="@drawable/tab_bg_selector"

его определенно работает

...