gpt4 book ai didi

android - 在焦点上更改可单击的 TextView 颜色并单击?

转载 作者:IT老高 更新时间:2023-10-28 22:00:00 31 4
gpt4 key购买 nike

我有一个可点击的 TextView,我想给它一些颜色。但我不知道怎么做。以下是我正在使用的两个文件中的相关代码 fragment :

TextView title = new TextView(this);
title.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
title.setTextColor(R.color.textcolor);
title.setText(titleLine);
title.setTypeface(null, Typeface.BOLD);
title.setClickable(true);
title.setId(idLine);
title.setFocusable(true);

title.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

/* Irrelevant code */

}
});

这是我的 textcolor.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="#000000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#000000"/> <!-- focused -->
<item android:color="#000000"/> <!-- default -->
</selector>

当我通过键入 title.setTextColor(R.color.textcolor); 使用 textcolor 文件时,无论我是否按下它,textcolor 都会变成灰色。这很奇怪,因为我在所有颜色字段中都写了“#000000”。
但是如果我删除 setTextColor 代码,让 textView 变成浅灰色,当我按下它时,它变成黑色。但这不是我想要的颜色。

那么,谁能帮我解决这个问题?

澄清一下:我希望能够在文本正常、按下和聚焦时指定文本的颜色。

最佳答案

如果你想从代码中设置有状态的颜色,你需要传入ColorStateList作为 setTextColor 的参数将 int 传递给该方法会导致将颜色设置为所有状态。看起来您的 xml 也不完全正确。 ColorStateList 文档中的示例看起来像(应该像这样定位:res/color/selector_txt.xml):

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="@color/testcolor1"/>
<item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" />
<item android:state_enabled="false" android:color="@color/testcolor3" />
<item android:color="@color/testcolor5"/>
</selector>

关于如何将 ColorStateList 设置为文本颜色的更新:

ColorStateList cl = null;
try {
XmlResourceParser xpp = getResources().getXml(R.color.selector_txt);
cl = ColorStateList.createFromXml(getResources(), xpp);
} catch (Exception e) {}

注意:方法 createFromXml(Resources, XmlPullParser parser) 在 API 级别 23 中已弃用。使用 createFromXml(Resources, XmlPullParser parser, Theme)

使用 XML 就这么简单:

android:textColor="@color/selector_txt"

关于android - 在焦点上更改可单击的 TextView 颜色并单击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5371719/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com