我有一个TextView
,我希望通过点击它来更改颜色并在退出应用程序后保存,我在可绘制文件夹中的xml文件中使用了选择器标记,但问题是默认颜色是正确但没有任何反应点击为什么?
选择器xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#FFA500"/>
<item android:color="#FF0000"/>
</selector>
TextView
xml:
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="35dp"
android:text="Transferef Money"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@drawable/selector" />
答案 0 :(得分:0)
虽然可以通过点击处理程序更改颜色
TextView textView = new TextView(this);
textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
textView.setTextColor(Color.BLACK);
}
});
向XML添加onClick属性
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="35dp"
android:text="Transferef Money"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@drawable/selector"
android:onClick="colorise"
/>
然后在colorise
方法中设置颜色。
此外,我认为状态不会通过XML文件保存,因此您必须以编程方式处理它。
答案 1 :(得分:0)
您可以完全避免XML
并在Java活动类中专注于它:
TextView lbl = (TextView)findViewById(R.id.myTextView);
lbl.setOnClickListener (new View.OnClickListener()
{
public void onClick(View v)
{
TextView lbl = (TextView)findViewById(R.id.myTextView);
lbl.setTextColor(Color.parseColor("#FF0000"));
lbl.setTextColor(Color.rgb(int, int, int));
lbl.setTextColor(Color.RED);
}
});
答案 2 :(得分:0)
首先在colors.xml中定义颜色,并在选择器中使用它们,这对我很有用。 例如:
<item android:state_focused="true" android:color="@color/blue_2"/>
<item android:state_pressed="true" android:color="@color/blue_2"/>
<item android:state_checked="true" android:color="@color/blue_2"/>
<item android:color="@color/black_1"/>