Handler的基本使用(1)之更新progressBar
2013-05-15 12:57
591 查看
实现:点击按钮,progressBar会自动地进行增操作。
效果:
点击后上面的progressbar会自动增加
布局文件:
设置进度条为不可见状态,android:visibility="gone",水平格式:style="?android:attr/progressBarStyleHorizontal"
src:
这边的sendMessage,另一边handleMessage
效果:
点击后上面的progressbar会自动增加
布局文件:
<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=".MainActivity" > <ProgressBar android:id="@+id/progressbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:max="100" style="?android:attr/progressBarStyleHorizontal" android:visibility="gone"/> <Button android:id="@+id/button" android:layout_below="@id/progressbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="start!"/> </RelativeLayout>设置两个控件(进度条,按钮),
设置进度条为不可见状态,android:visibility="gone",水平格式:style="?android:attr/progressBarStyleHorizontal"
src:
package com.shanl.handlerprogress; import java.util.logging.LogRecord; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.R.integer; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ProgressBar; import android.widget.SlidingDrawer; public class MainActivity extends Activity { private ProgressBar bar; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bar = (ProgressBar)findViewById(R.id.progressbar); button = (Button)findViewById(R.id.button); buttonListener listener = new buttonListener(); button.setOnClickListener(listener); } class buttonListener implements OnClickListener{ @Override public void onClick(View arg0) { // TODO Auto-generated method stub System.out.println("The button is clicked"); bar.setVisibility(View.VISIBLE);//设置进度条可见状态 handler.post(thread);//调用线程 } } Handler handler = new Handler(){//复写handleMaessge函数,对消息进行处理 public void handleMessage(android.os.Message msg) { bar.setProgress(msg.arg1);//设置进度条 handler.post(thread);//推进线程 }; }; Runnable thread = new Runnable() { int i = 0; @Override public void run() { // TODO Auto-generated method stub i = i + 10; Message msg = handler.obtainMessage();//获取消息对象 msg.arg1 = i; try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO: handle exception System.out.println("InterruptedException"); } handler.sendMessage(msg);//发送消息 if(i== 100){ handler.removeCallbacks(thread);//销毁线程 } } }; @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; } }消息的处理如下所示:
这边的sendMessage,另一边handleMessage
相关文章推荐
- 搬迁学习笔记1——Handler的基本使用、子线程更新UI的方式
- Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
- Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- 使用Thread+Handler实现非UI线程更新UI界面
- Android中Handler的使用方法——在子线程中更新界面
- Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
- Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
- Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等!!!!!!!!!!
- 【摘录】Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
- 老罗(18)发送Handler更新ProgressBar
- Android开发学习之路-使用Handler和Message更新UI
- [转]Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
- Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
- 使用Thread+Handler实现非UI线程更新UI界面
- 使用Handler在子线程中更新UI
- (转)Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等