2

我是 Android 开发的新手。

如果 ListViewItem 被选中或按下,我会尝试更改它的 FontColor 和背景。使用以下选择器更改背景绝对没有问题:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

   <item android:state_pressed="true"
         android:drawable="@drawable/background_pressed"></item>

   <item android:state_focused="true"
         android:drawable="@drawable/background_pressed"></item>

   <item android:state_selected="true"
         android:drawable="@drawable/background_pressed"></item>

   <item android:drawable="@android:color/transparent"></item>

</selector>

但是我怎样才能改变背景和字体颜色呢?

4

2 回答 2

2

更改 TextView 的字体颜色与列表项的背景颜色相同:创建一个 StateListDrawable 并将TextView's设置android:textColor为您的自定义可绘制对象。

例如,请参阅Change ListViews text color on click。将此与您已有的列表项背景相结合。

如果您希望颜色相互淡入,android:exitFadeDuration="@android:integer/config_mediumAnimTime"请在<selector>-tag 中设置(例如)。

于 2012-04-05T15:45:30.413 回答
0

试试这个

    @Override
public void onCreate(Bundle savedInstanceState) {
    TextView txtName;
    txtName.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            TextView textView = (TextView) v;
            textView.setBackgroundColor(Color.RED);
            textView.setTextColor(Color.YELLOW);
        }
    });
}
于 2012-04-05T15:06:59.833 回答