Handler与ProgressBar 例子
2016-04-21 22:32
375 查看
Handler与ProgressBar 例子
MainActivitypackage ray.com.hander_progressbar; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ProgressBar; public class MainActivity extends AppCompatActivity { private ProgressBar proBar = null; private Button button = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); proBar = (ProgressBar) findViewById(R.id.probar); button = (Button) findViewById(R.id.button1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { proBar.setVisibility(View.VISIBLE); // 防止重复点击post很多线程进去 if (proBar.getProgress() > 0) { return; } handler.post(runnable); } }); } Handler handler = new Handler() { @Override public void handleMessage(Message message) { proBar.setProgress(message.arg1); handler.post(runnable); } }; Runnable runnable = new Runnable() { int i = 1; @Override public void run() { i++; Message message = handler.obtainMessage(); message.arg1 = i; try { Thread.sleep(40); } catch (InterruptedException e) { e.printStackTrace(); } handler.sendMessage(message); if (i > 100) { handler.removeCallbacks(this); i = 1; } } }; }
activity_main
<?xml version="1.0" encoding="utf-8"?> <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="ray.com.hander_progressbar.MainActivity"> <ProgressBar android:layout_width="match_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal" android:id="@+id/probar" android:visibility="gone"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button1" android:layout_centerVertical="true" android:layout_centerHorizontal="true" android:text="Start"/> </RelativeLayout>
相关文章推荐
- Codeforces Educational Round 12 655ABCDE
- 堆
- 数据结构之物流信息的归并排序(非递归实现)
- [疯狂Java]I/O:字节流、字符流
- UML类图
- windows 10 64bit专业版安装Djano 1.9开发环境
- 【SQLite】Unity和SQLite数据库的应用
- HTTP请求响应过程以及与HTTPS区别
- Android属性动画实现TextView类似支付宝余额数字滚动
- LP距离与余弦距离物理意义
- Linux网络相关查询脚本
- 自定义String类:构造函数、复制构造函数、赋值函数的实现
- Python语言集成开发环境搭建
- addin插件Trace日志的使用
- 矩阵相乘(分治法)
- 2016年3月28日作业
- iOS开发——block传值
- React Native系列——Navigator组件的使用介绍
- Python之Django--ORM连表操作
- 网络编程——多线程与异步套接字编程(API) 学习