嘿我想在用户按下textColor
时更改TextView
。我想在Windows 8
中创建类似超链接的按钮。我在res/color folder
中有这个选择器。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_hovered="true">
<color android:color="@color/darkBlue"/>
</item>
<item android:state_pressed="true">
<color android:color="@color/lightBlue"/>
</item>
<item android:color="@color/black"/> <!-- default color -->
</selector>
我就像这样使用它
<TextView
android:id="@+id/tw_language"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/language_label"
android:layout_marginRight="3dp"
android:clickable="true"
android:autoLink="all"
android:text="@string/default_language_label"
android:textColor="@color/language_button"
/>
在我获得对此textView的引用时的活动中,我设置了mLanguage.setPaintFlags(mLanguage.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
获得带下划线的文字。应用程序使用此崩溃。如果我设置
android:background="@color/language_button"
而不是textColor
它可以正常工作。有谁知道我做错了什么?
答案 0 :(得分:0)
您需要在TextView中添加属性,如下所示
<TextView
android:id="@+id/txtResult"
style="@drawable/language_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
style="@drawable/language_button"
是您的选择器文件。我在drawable/stack.xml
目录中定义了该文件。
答案 1 :(得分:0)
你可以这样做:
textView = (TextView)findViewById(R.id.myTextView);
mMainView.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
textView.setTextColor(Color.GREEN);//set the color here
}
});