Как установить цвет текста как ссылку? - PullRequest
0 голосов
/ 11 ноября 2011

У меня есть текстовое представление, которое я хочу изменить, когда я фокусируюсь или нажимаю на него, как текст ссылки в Интернете. Я пытаюсь выполнить это , но оно все равно не работает

пожалуйста, помогите, спасибо

это мой код Java

public class TextColorActivity extends Activity {
/** Called when the activity is first created. */
 ColorStateList cl = null;
private TextView title;
@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    title = (TextView)findViewById(R.id.hello); 
    try {
        Log.d("test","try");        
       XmlResourceParser xpp = getResources().getXml(R.drawable.selector_txt);
       cl = ColorStateList.createFromXml(getResources(), xpp);
    } catch (Exception e) {}
    title.setTextColor(cl);
    title.setFocusable(true);
    title.setClickable(true);
    title.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

                  Log.d("test","click");               

        }
    });
}

это мой selector_txt.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="@color/Darkgoldenrod"/>
<item android:state_pressed="true" android:state_enabled="false"  
android:color="@color/Darkgreen" />
<item android:state_enabled="false" android:color="@color/Red" />
<item android:color="@color/blue"/>

и это мой главный.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:orientation="vertical" >
<TextView
    android:id="@+id/hello" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" 
    android:textSize="30dp"
    android:textStyle="bold"
    android:duplicateParentState="true"/>

1 Ответ

0 голосов
/ 11 ноября 2011

Вы также можете установить свой цвет в XML, если хотите.Просто создайте цветную папку в папке res и переместите туда XML-файл, затем вы можете установить его с помощью android:textColor="@color/selector_txt"

С учетом проблемы, с которой вы столкнулись.Android всегда будет использовать первое совпадение в селекторе.Если TextView нажат, он также фокусируется.Поэтому добавьте android:pressed="false" к первому элементу или переместите строку после нажатой строки состояния.

Это полный текст xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_enabled="false" android:color="@color/Red" /> 
<item android:state_pressed="true" android:color="@color/Darkgreen" /> 
<item android:state_focused="true" android:color="@color/Darkgoldenrod"/>
<item android:color="@color/blue"/>
</selector>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...