Android学习笔记之:android更新ui的几种常用方法
来源:互联网 发布:天龙八部手游 知乎 编辑:程序博客网 时间:2024/06/08 16:29
Android主线程不能执行耗时操作,我们一般是在子线程中执行耗时操作, 我们在执行完耗时操作后,我们一般可以通过以下几种方式来实现ui界面的更新。 首先是布局文件:
<LinearLayout 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:orientation="vertical" > <TextView android:id="@+id/mTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:textSize="16sp" /> <Button android:id="@+id/update_mButton_01" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="Hander Post" android:textSize="15sp" /> <Button android:id="@+id/update_mButton_02" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="Hander SendMessage" android:textSize="15sp" /> <Button android:id="@+id/update_mButton_03" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="RunOnUiThread" android:textSize="15sp" /> <Button android:id="@+id/update_mButton_04" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="View Post" android:textSize="15sp" /></LinearLayout>
————–代码实现,有注释————————————-
public class MainActivity extends Activity implements OnClickListener { private TextView mTextView; private Button update_mButton_01; private Button update_mButton_02; private Button update_mButton_03; private Button update_mButton_04; private Handler mPostHander = new Handler() { public void handleMessage(android.os.Message msg) { if (msg.what == 1) { // 更新UI mTextView.setText("通过Hander Send Message更新Ui"); } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); initEvents(); } /** * 初始化控件 * @description: * @date 2015-10-8 上午10:55:49 */ private void initViews() { this.mTextView = (TextView) findViewById(R.id.mTextView); this.update_mButton_01 = (Button) findViewById(R.id.update_mButton_01); this.update_mButton_02 = (Button) findViewById(R.id.update_mButton_02); this.update_mButton_03 = (Button) findViewById(R.id.update_mButton_03); this.update_mButton_04 = (Button) findViewById(R.id.update_mButton_04); } /** * 事件监听 * @description: * @date 2015-10-8 上午10:56:02 */ private void initEvents() { this.update_mButton_01.setOnClickListener(this); this.update_mButton_02.setOnClickListener(this); this.update_mButton_03.setOnClickListener(this); this.update_mButton_04.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.update_mButton_01:// 第一种方式,通过Hander.post方法来实现UI更新 new Thread() { public void run() { try { sleep(2000);// 休眠2秒,模拟耗时操作 mPostHander.post(new Runnable() { @Override public void run() { // 更新UI mTextView.setText("通过Hander Post更新Ui"); } }); } catch (InterruptedException e) { e.printStackTrace(); } }; }.start(); break; case R.id.update_mButton_02:// 直接通过Hander发送Message来更新UI new Thread() { public void run() { try { sleep(2000);// 休眠2秒,模拟耗时操作 mPostHander.sendEmptyMessage(1); } catch (InterruptedException e) { e.printStackTrace(); } }; }.start(); break; case R.id.update_mButton_03:// 通过runOnUiThread来实现ui更新 new Thread() { public void run() { try { sleep(2000);// 休眠2秒,模拟耗时操作 runOnUiThread(new Runnable() { @Override public void run() { // 更新UI mTextView.setText("通过runOnUiThread更新Ui"); } }); } catch (InterruptedException e) { e.printStackTrace(); } }; }.start(); break; case R.id.update_mButton_04:// 直接利用View.post方法来更新ui mTextView.post(new Runnable() { @Override public void run() { // 更新UI mTextView.setText("通过View.post()更新Ui"); } }); break; } }}
2 0
- Android学习笔记之:android更新ui的几种常用方法
- android更新UI的几种方法
- android更新UI的几种方法
- Android更新UI的几种方法
- android更新UI的几种方法
- android更新UI的几种方法
- Android 更新UI的几种方法
- Android开发中更新UI的几种常用方式
- 安卓学习笔记之Handler更新UI的几种方法总结
- Android更新UI界面的几种方法的使用
- 探讨android更新UI的几种方法
- 探讨android更新UI的几种方法
- 探讨android更新UI的几种方法
- Android更新Ui的几种方法和见解
- 探讨android更新UI的几种方法
- Android中更新UI的几种方法
- 探讨Android更新UI的几种方法
- android异步更新UI的几种方法
- C#操作水晶报表跟转换成PDF格式
- PHP初学之语法
- nyoj737石子合并【区间dp】
- Eclipse下BASE64Decoder提示错误的解决办法
- Python-语法
- Android学习笔记之:android更新ui的几种常用方法
- Android中Canvas绘图基础详解(附源码下载)
- use of '@import' when modules are disabled
- [伪科学]如何使用程序探究彩票的奥秘
- 搜索&运行whalesay镜像
- ios5 模拟器上没 home键,怎么返回的
- C#多线程编程
- 欢迎使用CSDN-markdown编辑器
- python poly1d 实例