java - 如何根据数据高亮TextView中的单词
问题描述
我想突出显示 TextView 中与从数据库中获取的数据匹配的文本。我使用下面的代码,但 TextView 中的文本不会改变颜色。这是我的代码,但 setter 和 getter 看起来没用。
class getICT {
@SerializedName("eng")
private String eng;
@SerializedName("bhs")
private String bhs;
@SerializedName("kor")
private String kor;
public getICT(String eng, String bhs, String kor, String imageURL){
this.eng = eng;
this.bhs = bhs;
this.kor = kor;
}
/*
GETTERS N SETTERS
*/
public String getEng() {
return eng;
}
public String getBhs() {
return bhs;
}
public String getKor() {
return kor;
}
@Override
public String toString() {
return eng;
}
}
这是我的界面,从数据库中获取
interface MyAPIService {
@GET("/ICT03/danger.php")
Call<getICT[]> getICT();
}
我编写代码以从此处突出显示文本
ShowDetected.MyAPIService myAPIService = ShowDetected.RetrofitClientInstance.getRetrofitInstance().create(ShowDetected.MyAPIService.class);
Call<getICT[]> call = myAPIService.getICT();
call.enqueue(new Callback<getICT[]>() {
@Override
public void onResponse(Call<getICT[]> call, Response<getICT[]> response) {
getICT[] icts = response.body();
String s = showInput.getText().toString();
for(int i = 0; i < icts.length; i++) {
if (icts[i].equals(s)) {
showInput.setText(s);
showInput.setTextColor(Color.RED);
} else {
showInput.setTextColor(Color.BLACK);
}
}
}
@Override
public void onFailure(Call<getICT[]> call, Throwable t) {
Toast.makeText(ShowDetected.this, ""+t.getMessage().toString(), Toast.LENGTH_SHORT).show();
}
});
解决方案
你的代码不正确,试试这个
boolean isHighlight = false
for(int i = 0; i < icts.length; i++) {
if (icts[i].equals(s)) {
isHighlight = true;
break;
}
}
showInput.setTextColor(isHighlight ? Color.RED : Color.BLACK);
推荐阅读
- authentication - 在 NestJs 中验证 Google JWT
- python - 尝试在 MacBook 上安装 pygame 时如何修复“scrap.c:27:10: fatal error: 'SDL.h' file not found”
- java - 将静态类 var 绑定到非静态实例 var 混淆。创建新对象时有效吗?
- linux - 将对象/文件从一个 AWS s3 存储桶复制到另一个没有来自源存储桶的子文件夹路径
- python - 如何修复遇到“无法分配给函数调用”错误的这行代码?
- javascript - 如何获取带有子目录的根 url
- http - 使用您自己的域创建动态二维码?
- ios - 分阶段推出如何影响应用商店上的当前版本号
- reactjs - 不确定如何在 Laravel 中路由到我的 React 视图
- android - 路由弹出/推送后未调用构建方法