Изменить цвет текста в тексте TextView и щелкнуть?

У меня есть интерактивный TextView, который я хочу дать некоторым цветам. Но я не знаю, как это сделать. Вот соответствующие fragmentы кода из двух моих файлов, с которыми я работаю:

TextView title = new TextView(this); title.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); title.setTextColor(R.color.textcolor); title.setText(titleLine); title.setTypeface(null, Typeface.BOLD); title.setClickable(true); title.setId(idLine); title.setFocusable(true); title.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { /* Irrelevant code */ } }); 

И это мой файл textcolor.xml:

          

Когда я использую textcolor-файл, набрав title.setTextColor (R.color.textcolor); , textcolor просто становится серым, независимо от того, нажимаю ли я его или нет. Что странно, так как я написал «# 000000» во всех полях цвета.
Но если я удалю код setTextColor, получим textView светло-серый цвет, и когда я его нажму, он станет черным. Но это не те цвета, которые я хочу.

Итак, может ли кто-нибудь помочь мне с этой проблемой?

Просто уточнить: я хочу иметь возможность указывать цвета для текста, когда он нормальный, нажатый и сфокусированный.

Если вы хотите установить цвет с сохранением цвета из кода, вам нужно передать ColorStateList в качестве аргумента setTextColor передающего int в метод, чтобы установить цвет для всех состояний. Это также похоже на то, что ваш xml не совсем корректен. Пример из документов ColorStateList выглядит так: (должно быть расположено вот так: res/color/selector_txt.xml ):

        

UPD о том, как установить ColorStateList в цвет текста:

 ColorStateList cl = null; try { XmlResourceParser xpp = getResources().getXml(R.color.selector_txt); cl = ColorStateList.createFromXml(getResources(), xpp); } catch (Exception e) {} 

Примечание . Метод createFromXml(Resources, XmlPullParser parser) устарел на уровне API 23. Используйте createFromXml(Resources, XmlPullParser parser, Theme)

С XML это легко:

 android:textColor="@color/selector_txt" 

Шаг 1. Установите цвет текста в xml, как это

андроид: TextColor = “@ цвет / text_color”

Шаг 2: Создайте res / color / text_color.xml

         

Попробуйте это … Это сработало для меня:

Имя файла: res / color / bg_tab_text_color.xml

        

Попробуйте установить цвет в макете xml как:

 android:textColor="@color/bg_tab_text_color" 

Посмотрите class R.java (он генерируется автоматически). У вас есть что-то вроде этого:

  public static final class color { public static final int gray_transparent=0x7f050001; } 

Итак, в вашем коде в строке:

 title.setTextColor(R.color.textcolor); 

вы не устанавливаете значения из textcolor.xml, а int из R.java (который содержит адрес textcolor.xml). Правильный способ установки цвета:

 title.setTextColor(getResources().getColorStateList(R.color.textcolor)); 

Это очень легко. Поймите это … Это сработало для меня:

Имя файла: res / color / bg_tab_text_color.xml

   

Попробуйте установить цвет в макете xml как:

 android:textColor="@color/bg_tab_text_color" 

Это очень простой способ программно:

 private void setColorStateList(TextView view) { int[][] states = new int[][] { new int[] { android.R.attr.state_pressed}, // pressed new int[] { android.R.attr.state_focused}, // focused new int[] { android.R.attr.state_enabled} // enabled }; int[] colors = new int[] { getResources().getColor(R.color.blue), getResources().getColor(R.color.green), getResources().getColor(R.color.green) }; ColorStateList list = new ColorStateList(states, colors); view.setTextColor(list); view.setClickable(true); view.setFocusableInTouchMode(true); } 

В res / drawable / tab_textColor.xml:

        

В res / color / text_selector.xml:

      

В макете:

  

В коде:

 textView.setSelected(false); // To deselect. textView.setSelected(true); 
  • Удалить упорное подчеркивание ссылки
  • Откройте внешние ссылки в браузере с веб-браузером Android
  • Найти имя пакета для приложений Android, чтобы использовать Intent для запуска приложения Market из Интернета
  • html ссылки не работают (с использованием base href)
  • Может ли Google Chrome открывать локальные ссылки?
  • Как сохранить: активный стиль css после нажатия элемента
  • Связывание значения столбца в jqGrid с новой страницей с помощью GET
  • Как добавить гиперссылку в JLabel
  • Давайте будем гением компьютера.