我在此代码中遇到问题
tv.setText(str);
正在运行,tv
的文字更改为"LED1"
,但在if(str=="LED1")
中它无效!有什么问题?
Handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
byte [] data= (byte[]) msg.obj;
try {
tv.setText("");
String str = new String(data, "UTF-8");
tv.setText(str);
if(str=="LED1")
{
tv.setBackgroundColor(getResources().getColor(R.color.red));
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
};
答案 0 :(得分:1)
equals
需要使用==
代替String
。
这意味着if(str.equals("LED1"))
而不是if(str=="LED1")
答案 1 :(得分:1)
出现此问题的原因是您使用==
运算符与字符串进行比较。您需要使用equals
来匹配字符串。我们需要比较这些值。
更改以下行
if(str=="LED1")
到
if("LED1".equals(str))