2017-03-09 6 views
0

Ich habe diesen folgenden Code, das Problem, das ich lese ist, dass Sie eine Textansicht nicht innerhalb einer ausführbaren Methode platzieren können, wie kann ich dies implementieren.So führen Sie eine Textansicht auf runnable

Thread UDPreceive; 
    Handler handler = new Handler(); 
    void startListen() { 
     UDPreceive = new Thread(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        while(true) { 
         String hey; 
         //TextView text22 = (TextView) findViewById(R.id.textView2); 
         int server_port = 9875; 
         byte[] message = new byte[255]; 
         DatagramPacket p = new DatagramPacket(message, message.length); 
         DatagramSocket s = new DatagramSocket(server_port); 
         s.receive(p); 
         hey = new String(message, 0, p.getLength()); 
         Log.d("MESSAGE: ", "Message is:" + hey); 
         //text22.setText(hey); 
         s.close(); 
        } 
       } catch (Exception e) { 
        System.err.println(e); 
        e.printStackTrace(); 
       } 
      } 

     }); 
     UDPreceive.start(); 

    } 

Antwort

0
Yo can also use 

runOnUiThread(new Runnable() { 
          @Override 
          public void run() { 
           text22.setText(hey); 
          } 
         }); 

It will give you main thread access to render on UI. 
+0

I läuft dies auf onCreate Methode habe versucht, aber anscheinend ist es nicht mein Log auf Android schaffen, die mich benachrichtigt, wenn ich etwas erhalten, und den Text auf Textview. Oder fehlt mir etwas? – John

+0

Es funktioniert, wenn ein einfacher Text angezeigt wird, ich werde das untersuchen. Trotzdem danke. – John

+0

scheint, dass ich das in meinem Thread implementieren kann. Es funktioniert jetzt Danke. – John

0
textview.post(new Runnable() { // Use the post method of the TextView 
    public void run() { 
     textview.setText( // Update the Textview 
      "some text" 
     ); 
    } 
}); 
Verwandte Themen