怎么改变Activity中的TextView内容

 今天做新浪分享,调用接口拿到用户头像,用户名时,直接setText()总出错。原来如此:

改变TextView中的内容

改变TextView中的内容可以通过Handler。Handler是Android中的消息发送器,其在哪个Activity中创建就属于且紧紧属于该Activity。还可以说其在哪个线程中new的,就是那个线程的Handler。

如果想改变TextView中的内容,就要通过Handler来实现,比如想每秒钟更新一下时间,那么如下:

(1)        在Activity中创建Handler

(2)        创建一个实现了Runnable接口的线程类

(3)        通过Handler的Post方法将Runnable添加进入消息队列

(4)        ok了。呵呵

代码

 

Java代码
  1. 1       package rznh.zcl;   
  2. 2       import android.app.Activity;   
  3. 3       import android.os.Bundle;   
  4. 4       import android.os.Handler;   
  5. 5       import android.view.View;   
  6. 6       import android.widget.Button;   
  7. 7       import android.widget.TextView;   
  8. 8       public class MyActivity extends Activity {   
  9. 9             
  10. 10              private Button butStart;   
  11. 11              private Button butStop;   
  12. 12              TextView tv;   
  13. 13              int i=0;   
  14. 14              Handler handler=new Handler();   
  15. 15         @Override  
  16. 16         public void onCreate(Bundle savedInstanceState) {   
  17. 17             super.onCreate(savedInstanceState);   
  18. 18             setContentView(R.layout.main);   
  19. 19               
  20. 22             //all by zcl qq158067568   
  21. 23             butStart=(Button)findViewById(R.id.Button01);   
  22. 24             butStop=(Button)findViewById(R.id.Button02);   
  23. 25             tv=(TextView)findViewById(R.id.TextView01);   
  24. 26             butStart.setOnClickListener(new View.OnClickListener() {   
  25. 27                    @Override  
  26. 28                    public void onClick(View v) {   
  27. 29                             handler.post(runnable);   
  28. 30                    }   
  29. 31         });   
  30. 32               butStop.setOnClickListener(new View.OnClickListener() {   
  31. 33                           @Override  
  32. 34                           public void onClick(View v) {   
  33. 35                                    handler.removeCallbacks(runnable);   
  34. 36                           }   
  35. 37                  });   
  36. 38         }   
  37. 39         Runnable runnable=new Runnable(){   
  38. 40       
  39. 41                       @Override  
  40. 42                       public void run() {   
  41. 43                                 tv.setText(String.valueOf(i++));   
  42. 44                                 handler.postDelayed(runnable, 1000);   
  43. 45                       }   
  44. 46         };   
  45. 47     }

你可能感兴趣的:(android)