我正在製作一個應用程序,它建立了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