Android 如何将文本颜色设置为链接?
我有一个文本视图,当我聚焦或点击它时,我想改变它的颜色,就像我试图跟随的网页中的链接文本一样,但它仍然不起作用 请帮忙,谢谢 这是我的java代码Android 如何将文本颜色设置为链接?,android,textview,Android,Textview,我有一个文本视图,当我聚焦或点击它时,我想改变它的颜色,就像我试图跟随的网页中的链接文本一样,但它仍然不起作用 请帮忙,谢谢 这是我的java代码 public class TextColorActivity extends Activity { /** Called when the activity is first created. */ ColorStateList cl = null; private TextView title; @Override public void onC
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");
}
});
}
这是我的选择器_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"/>
这是我的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: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"/>
如果需要,还可以在xml中设置颜色。只需在res文件夹中创建一个颜色文件夹,并将xml文件移动到那里,然后您就可以通过
android:textColor=“@color/selector\u txt”
考虑到你的问题。Android将始终使用选择器中的第一个匹配项。如果按下文本视图,它也会聚焦。因此,将android:pressed=“false”添加到您的第一个项目中,或将该行移动到按下状态行之后
这是完整的xml:
您面临的问题是什么?它将更改为testcolor5,但无法更改为其他颜色。我没有聚焦,也没有单击更改此行,如果行正常或不正常,请更新我。我刚刚看到您在按下状态下也会查找enabled=false。移除此项并首先移动第三项,然后它应该可以工作。我会用整个XML更新我的答案,选择器肯定会工作的。肯定是别的地方出了问题。你确定onClick事件正在被触发?你能看到日志吗?你把选择器移到颜色文件夹了吗?然后,您可以通过R.color.selector_txt访问它,否则我没有IDEASYSES,我已经移动了它,但它仍然无法工作,无论如何,非常感谢您,如果您能找到其他想法,请帮助我:)
}catch(异常e){}
永远不要创建空的catch块。你确定没有任何例外吗?
<?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>