zoukankan      html  css  js  c++  java
  • Android攻城狮 Android中更新UI的几种方式

    Android中更新UI的几种方式:
    1. Activity 的 runOnUiThread()
    2. Handler 的 post()
    3. Handler 的 sendMessage()
    4. View 的 post()

     

     

     1 public class FiveActivity extends Activity {
     2 
     3     private TextView textView;
     4 
     5     private Handler handler = new Handler() {
     6         public void handleMessage(android.os.Message msg) {
     7             textView.setText("ok2");
     8         };
     9     };
    10 
    11     private void handle1() {
    12 
    13         handler.post(new Runnable() {
    14 
    15             @Override
    16             public void run() {
    17                 // TODO Auto-generated method stub
    18                 textView.setText("ok1");
    19             }
    20         });
    21 
    22     }
    23 
    24     // 最常见的的
    25     public void handle2() {
    26         handler.sendEmptyMessage(1);
    27     }
    28 
    29     public void updateUI() {
    30         runOnUiThread(new Runnable() {
    31 
    32             @Override
    33             public void run() {
    34                 // TODO Auto-generated method stub
    35                 textView.setText("ok3");
    36             }
    37         });
    38     }
    39 
    40     public void viewUI() {
    41         textView.post(new Runnable() {
    42 
    43             @Override
    44             public void run() {
    45                 // TODO Auto-generated method stub
    46                 textView.setText("ok4");
    47             }
    48         });
    49     }
    50 
    51     @Override
    52     protected void onCreate(Bundle savedInstanceState) {
    53         // TODO Auto-generated method stub
    54         super.onCreate(savedInstanceState);
    55         setContentView(R.layout.five);
    56         textView = (TextView) findViewById(R.id.textView1);
    57         new Thread() {
    58             public void run() {
    59                 try {
    60                     Thread.sleep(2000);
    61                     // handle1()
    62                     // handle2();
    63                     // updateUI();
    64                     viewUI();
    65                 } catch (InterruptedException e) {
    66                     // TODO Auto-generated catch block
    67                     e.printStackTrace();
    68                 }
    69             }
    70         }.start();
    71     }
    72 }

     

  • 相关阅读:
    cf round #421 div2 D. Mister B and PR Shifts
    cf round #421 div2 C. Mister B and Boring Game(trick)
    UVa 12716 GCD XOR
    cf 821E Okabe and El Psy Kongroo(矩阵快速幂)
    hdu 6109 数据分割(并查集+set)
    poj 2887 Big String(块状链表)
    hdu 6119 小小粉丝度度熊(区间双指针)
    hdu 6118 度度熊的交易计划(可行费用流)
    hdu 6015 Gameia(树上博弈)
    hdu 6096 String(AC自动机巧妙建图)
  • 原文地址:https://www.cnblogs.com/my334420/p/6759018.html
Copyright © 2011-2022 走看看