您的位置:首页 > 产品设计 > UI/UE

倒计时获取验证码 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();

}

}

};

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: