我正在制作一个应用程序,它建立了Arduino UNO R3和Android平板电脑之间的USB通信。 Arduino板卡正确发送数据,甚至正确地被平板电脑接收到,并且在尝试显示时,文本确实被打印,但是连续闪烁。Settext导致文本闪烁不规则
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。
数据是否迅速改变?如果没有,你可以检查'TextView'是否已经有这个文本,不要再重新设置。 – yennsarah
这不是关于数据的变化。我尝试从Arduino发送一个不变的数字,甚至闪烁。 – archity
顺便说一句,你可以请告诉你如何阅读已经打印的textview的值... – archity