倒计时获取验证码 runOnUiThread Timer TimerTask
2015-11-30 13:16
555 查看
package com.example.duanxin; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { private Timer timer; private TimerTask timerTask; private int count =60; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btn).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startCount(); } }); } private void startCount(){ timer=new Timer(); timerTask=new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { public void run() { count--; if (count>0){ findViewById(R.id.btn).setEnabled(false); ((Button)findViewById(R.id.btn)).setText(count + "s"); }else{ findViewById(R.id.btn).setEnabled(true); ((Button)findViewById(R.id.btn)).setText("重发验证码"); timerTask.cancel(); count=60; } } }); } }; timer.schedule(timerTask, 0, 1000); } }private String str= "123";
TextView tv;
private Message message;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
tv = (TextView) findViewById(R.id.tv);
tv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
tv.setEnabled(false);
new Thread(yuanlirunnable).start();
Toast.makeText(BActivity.this, "点击", Toast.LENGTH_LONG).show();
}
});
}
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
int p=msg.what;
if(p==0){
tv.setEnabled(true);
}
}
};
Runnable yuanlirunnable=new Runnable() {
@Override
public void run() {
message=handler.obtainMessage();
try {
for (int i =10; i >= 0; i--) {
/*
* 在这里控制进度
*/
// int x=++progress;
int randomnumberprogress=(int) (Math.random()*100);
// int x=randomnumberprogress;
int x=i;
message.what=x;
handler.sendEmptyMessage(message.what);
Thread.sleep(100);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
}
相关文章推荐
- 1085. Perfect Sequence
- jsp request 对象详解
- UI-1-UI入门
- String,StringBuffer与StringBuilder的区别
- UIPickerView基本用法
- UITextField的使用
- UESTC 58 任意阶矩阵的乘法 虽然简单但优化还是要思考一下的 而且也使自己意识到了原来没有注意的问题
- LintCode: Longest Increasing Continuous subsequence
- [DB2]错误"Requesting too many semaphores" 解决办法
- 用dialog引入easyui的时候会报错
- UITextField的使用
- hdu5568 sequence2
- UITableView优化技巧
- UITableView
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- Lintcode: Unique Paths
- UITableView可编辑状态常用操作
- 自定义UIAlertView第三方类库
- 芒果iOS开发之UITableView详解
- UIview图层的技术