Ich mache eine App, die USB-Kommunikation zwischen einem Arduino UNO R3 und einem Android-Tablet herstellt. Arduino Board sendet Daten korrekt und es wird sogar von Tablet korrekt empfangen und wenn versucht, anzuzeigen, wird der Text gedruckt, aber mit einem eher kontinuierlichen Flimmern.Settext verursacht irrativ flimmernden Text
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);
}
}
}
Ich denke, der Grund für Flimmern kann sein, dass die Daten zu schnell eingehen. Die Verwendung von Thread.sleep hilft nicht. Was kann die mögliche Lösung für dieses Problem sein? Außerdem verursacht das Verwenden von append anstelle von settext keine flackernden Probleme, aber dann werden die Daten an textview angehängt.
Bieten die Daten schnell ändern? Wenn nicht, können Sie überprüfen, ob der Texttext bereits diesen Text enthält und nicht erneut einstellen. – yennsarah
Es geht nicht um Datenänderungen. Ich habe versucht, eine konstante Zahl von Arduino zu senden, selbst das flackert. – archity
BTW, können Sie bitte sagen, wie Sie den Wert der bereits gedruckten Textansicht lesen ... – archity