Settext导致文本不规则地闪烁

时间:2016-07-05 12:32:32

标签: java android arduino settext

我制作的应用程序可以在Arduino UNO R3和Android平板电脑之间建立USB通信。 Arduino板正在正确发送数据,甚至可以通过平板电脑正确接收数据,当试图显示时,文本会被打印,但会有相当连续的闪烁。

class MyThread extends Thread
{
    @Override
    public void run()
    {
        mCallback = new UsbSerialInterface.UsbReadCallback()
        { //Defining a Callback which triggers whenever data is read.
            @Override
            public void onReceivedData(byte[] arg0) //data received in bytes
            {
                String data = null;

                try
                {

                    data = new String(arg0, "UTF-8");
                    handler.post(new newthread(data));                            

                }
                catch (UnsupportedEncodingException e)
                {
                    e.printStackTrace();
                }
            }
        };
    }
}
class newthread implements Runnable
{
    String str1;        

    public newthread(String STR1)
    {            
        str1 = STR1;
    }
    @Override
    public void run()
    {

        DoseRateDisplay = (TextView) findViewById(R.id.DoseRateDisplay);
        if(str1.contains("L"))
        { tv6.append("Health OK"); }
        else
        {
           DoseRateDisplay.settext(str1);
        }
    }
}

我认为闪烁的原因可能是数据输入太快了。使用Thread.sleep没有帮助。这个问题的可能解决方案是什么?另外,使用append而不是settext不会导致任何闪烁问题,但数据会附加到textview。

1 个答案:

答案 0 :(得分:0)

从我的评论中:尝试检查收到的文本和TextView中已有的文字是否相同:

if(!DoseRateDisplay.getText().toString().equals(str1)) {
    DoseRateDisplay.settext(str1);
}