2017-03-09 37 views
0

私は次のコードを読んでいます。実行可能メソッド内にテキストビューを置くことはできません。どうすればこのファイルを実装できますか?実行可能ファイルでTextviewを実行するには

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(); 

    } 

答えて

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

私はのonCreateメソッドでこれを実行しようとしましたが、どうやらそれは私が何か、とのTextViewのテキストを受け取ったなら、私に通知しますアンドロイドの私のログを提供していません。または何かが欠けている? – John

+0

シンプルなテキストが表示されているときに機能しますが、これについて検討します。しかし、ありがとう。 – John

+0

私はこれを私のスレッドの中に実装できると思われます。それは今働いています。ありがとう。 – John

0
textview.post(new Runnable() { // Use the post method of the TextView 
    public void run() { 
     textview.setText( // Update the Textview 
      "some text" 
     ); 
    } 
}); 
関連する問題