博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发更新UI的几种方式
阅读量:5281 次
发布时间:2019-06-14

本文共 3033 字,大约阅读时间需要 10 分钟。

1、runOnUiThread

2、handler post

3、handler sendmessage

4、view post

 xml布局文件:        

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:paddingBottom="@dimen/activity_vertical_margin"
  android:paddingLeft="@dimen/activity_horizontal_margin"
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  tools:context="com.example.handlerui.MainActivity" >

  <TextView

  android:id="@+id/textView"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textSize="50sp"
  android:text="@string/hello_world" />

  </RelativeLayout>

  MainActivity.java

  

package com.example.handlerui;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.view.Menu;import android.view.MenuItem;import android.widget.TextView;public class MainActivity extends Activity {			private TextView textView;			private Handler handler = new Handler(){		public void handleMessage(android.os.Message msg) {			//textView.setText("OK");	//使用handler2更新UI的时候去掉注释
      };			};		private void handler1(){		handler.post(new Runnable() {						@Override			public void run() {				// TODO Auto-generated method stub				textView.setText("OK");			}		});	}		private void handler2(){		handler.sendEmptyMessage(1);	}		private void updateUi(){		runOnUiThread(new Runnable() {						@Override			public void run() {				// TODO Auto-generated method stub				textView.setText("OK");			}		});	}		private void viewUI(){		textView.post(new Runnable() {						@Override			public void run() {				// TODO Auto-generated method stub				textView.setText("OK");			}		});	}    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        textView = (TextView) findViewById(R.id.textView);        new Thread(){        	public void run() {        		try {					Thread.sleep(2000);					//handler1();					handler2();					//updateUi();					//viewUI();				} catch (InterruptedException e) {					// TODO Auto-generated catch block					e.printStackTrace();				}        		        	};        }.start();    }        @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();        if (id == R.id.action_settings) {            return true;        }        return super.onOptionsItemSelected(item);    }}

  

转载于:https://www.cnblogs.com/cnugis/p/5401546.html

你可能感兴趣的文章
其他ip无法访问Yii的gii,配置ip就可以
查看>>
使用json格式输出
查看>>
php做的一个简易爬虫
查看>>
x的x次幂的值为10,求x的近似值
查看>>
hdu-5009-Paint Pearls-dp
查看>>
jquery获取html元素的绝对位置和相对位置的方法
查看>>
ios中webservice报文的拼接
查看>>
Power BI 报告的评论服务支持移动设备
查看>>
ACdream 1068
查看>>
HDU 2665 Kth number
查看>>
CodeChef DGCD Dynamic GCD
查看>>
记叙在人生路上对你影响最大的三位老师
查看>>
002.大数据第二天
查看>>
python装饰器
查看>>
树上的路径
查看>>
【转载】TCP好文
查看>>
系统平均负载
查看>>
问题总结
查看>>
jenkins升级为2.134
查看>>
软件随笔
查看>>