如何根据数据在文本视图中突出显示单词



我想突出显示文本视图中与从数据库中获取的数据匹配的文本。我使用下面的代码,但文本视图中的文本不会改变颜色。 这是我的代码,但二传手和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);

最新更新