因此,我有一个应用程序,它使用改进的客户端发送一个请求到ROS服务器,现在我的问题是,我正在设置我的状态,如果状态是" true“,它将设置为文本颜色为绿色,否则为红色,但当我对我的应用程序执行它时,它似乎只执行else语句,即使状态为true,它也显示为全部红色。有人能帮我吗?我还是个初学者。
发布于 2019-12-03 10:35:53
似乎你还没有得到SoftwareStatus的文本,你需要先得到文本,然后将其转换为字符串,然后比较它是否为真。
if(SoftwareStatus.getText().toString().equals("true"))
{
SoftwareStatus.setTextColor(Color.GREEN);
}
else
{
SoftwareStatus.setTextColor(Color.RED);
}这是因为.equals()通常用于比较字符串/字符/文本
编辑过的。
发布于 2019-12-03 10:39:34
HardwareStatus是一个TextView,所以它总是不等于false。也许你想检查它的文本?在这种情况下,您应该使用TextView.getText()方法
if (HardwareStatus.getText().equals("false")) {
HardwareStatus.setTextColor(Color.RED);
} else {
HardwareStatus.setTextColor(Color.GREEN);
}变量的第一个字母应该是小写的HardwareStatus => hardwareStatus
发布于 2019-12-03 13:51:58
获得响应后,更新app类中的布尔值或字符串值,为其创建setter和getter,然后在添加之前检查您的textView
Class ApplicationClass extends Application(){
String statusValue="false";
Boolean statusBoolean=false;
public void updateStatusValue(String value){
this.statusValue=vale;
}
public String getStatusValue(){
return statusValue;
}
}调用接口并获取响应updateStatusValue后
ApplicationClass.updateStatusValue(response.body().getHardwareStatus())
if(ApplicationClass.getStatusBoolean() ||Application.getStatusValue().equalsIgnoreCase("true")) {
SoftwareStatusTv.setTextColor(Color.GREEN);
}else{
HardwareStatusTv.setTextColor(Color.RED);
}现在,您可以使用这个简单的getter setter为整个应用程序添加检查
https://stackoverflow.com/questions/59149398
复制相似问题