将bytes []更改为string

时间:2015-12-24 08:49:19

标签: java android

我在此代码中遇到问题 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();
        }
    }
};

2 个答案:

答案 0 :(得分:1)

equals需要使用==代替String

这意味着if(str.equals("LED1"))而不是if(str=="LED1")

请参阅How do I compare strings in Java?

答案 1 :(得分:1)

出现此问题的原因是您使用==运算符与字符串进行比较。您需要使用equals来匹配字符串。我们需要比较这些值。

更改以下行

if(str=="LED1")

if("LED1".equals(str))