首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用if和else语句设置文本颜色

使用if和else语句设置文本颜色
EN

Stack Overflow用户
提问于 2019-12-03 10:31:48
回答 3查看 378关注 0票数 1

因此,我有一个应用程序,它使用改进的客户端发送一个请求到ROS服务器,现在我的问题是,我正在设置我的状态,如果状态是" true“,它将设置为文本颜色为绿色,否则为红色,但当我对我的应用程序执行它时,它似乎只执行else语句,即使状态为true,它也显示为全部红色。有人能帮我吗?我还是个初学者。

EN

回答 3

Stack Overflow用户

发布于 2019-12-03 10:35:53

似乎你还没有得到SoftwareStatus的文本,你需要先得到文本,然后将其转换为字符串,然后比较它是否为真。

代码语言:javascript
运行
复制
if(SoftwareStatus.getText().toString().equals("true")) 
{
  SoftwareStatus.setTextColor(Color.GREEN);
} 
else 
{
SoftwareStatus.setTextColor(Color.RED);
}

这是因为.equals()通常用于比较字符串/字符/文本

编辑过的。

票数 0
EN

Stack Overflow用户

发布于 2019-12-03 10:39:34

HardwareStatus是一个TextView,所以它总是不等于false。也许你想检查它的文本?在这种情况下,您应该使用TextView.getText()方法

代码语言:javascript
运行
复制
if (HardwareStatus.getText().equals("false")) {
    HardwareStatus.setTextColor(Color.RED);
} else {
    HardwareStatus.setTextColor(Color.GREEN);
}

变量的第一个字母应该是小写的HardwareStatus => hardwareStatus

票数 0
EN

Stack Overflow用户

发布于 2019-12-03 13:51:58

获得响应后,更新app类中的布尔值或字符串值,为其创建setter和getter,然后在添加之前检查您的textView

代码语言:javascript
运行
复制
Class ApplicationClass extends Application(){

String statusValue="false";
Boolean statusBoolean=false;


public void updateStatusValue(String value){

this.statusValue=vale;
}

public String getStatusValue(){

return statusValue;
}


}

调用接口并获取响应updateStatusValue后

代码语言:javascript
运行
复制
ApplicationClass.updateStatusValue(response.body().getHardwareStatus())



if(ApplicationClass.getStatusBoolean() ||Application.getStatusValue().equalsIgnoreCase("true")) {
SoftwareStatusTv.setTextColor(Color.GREEN);
}else{
 HardwareStatusTv.setTextColor(Color.RED);
}

现在,您可以使用这个简单的getter setter为整个应用程序添加检查

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59149398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档