1. android 怎么在button上添加倒计时
最简单的两种方法吧
开启一个定时器 (timer 、 countDownTimer) 然后每隔1s 通过handler 让button 里面的文字改变一下 就是倒计时了
基本跟第一个相同。自定义一个类 继承button 然后 里面写定时器 settext()
2. android 如何实现弹出一个进度条后,再弹出一个倒计时的界面。
实现流程
Step One 弹出进度条对话框
Step Two 执行线程,在线程中实现数据的异步加载
Step Three 在线程数据加载完成后,调用Handler并集合数据,更新界面
java代码
//添加异步操作
m_Dialog=ProgressDialog.show(m_context, "请等待...", "正在下载安装文件,请稍后...",true);
//mRegsiterHandler.sleep(100);
new Thread(new Runnable(){
@Override
public void run() {
//加载数据
result=0;
try{
//下载文件
String url="http://00.00.00.00:80/nationaltest.html";
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
HttpResponse response;
response = client.execute(get);
HttpEntity entity = response.getEntity();
long length = entity.getContentLength();
InputStream is = entity.getContent();
FileOutputStream fileOutputStream = null;
if (is != null) {
File file = new File(Environment.getExternalStorageDirectory(), "nationaltest.apk");
fileOutputStream = new FileOutputStream(file);
byte[] buf = new byte[1024];
int ch = -1;
while ((ch = is.read(buf)) != -1) {
fileOutputStream.write(buf, 0, ch);
}
}
fileOutputStream.flush();
if (fileOutputStream != null) {
fileOutputStream.close();
}
result=2;
}
catch(Exception ex){
result=-1;
}
//更新界面
// Update the progress bar
mHandler.post(new Runnable() {
public void run() {
if(result==2)
install();
else
Toast.makeText(m_context, "下载文件失败,请检查网络连接", Toast.LENGTH_SHORT).show();
}
});
m_Dialog.dismiss();
}}).start();
}
3. android 实现同时多个倒计时效果怎么做
安卓实现同时多个倒计时效果的步骤:
我们首先需要在输入框中输入一个秒数,比如:12,然后获取输入框中的值,显示在一个TextView中;
点击“开始倒计时”按钮,每隔一秒钟,秒数减1,然后显示在TextView中;
点击“停止倒计时”按钮,计时器停止运行,当再次点击“开始倒计时”按钮,计时器继续运行。
平时用的每个商品都应该有两个属性值,这里叫它deadLine和isOvere吧,表示商品的到期时间和是否到期,那么倒计时可以考虑这么实现:设置一个主计时器,每隔1秒发出消息告诉GridView现在的时间,GridView的Item获得这个时间之后就和deadLine比较,如果已经到deadline了,就把数据源中的这项标记成已到期(修改isOvere的值为true);没到deadline,就计算还差多少时间,显示到GridView的Item里。
4. android studio怎么实现倒计时
以自动实现KeyEvent.Callback接口为例子启动AndroidStudio,打开demo工程增加实现KeyEvent.Callback的类使用Alt+Enter快捷键把光标定位到接口名按Alt+Enter,并点击"Implementmethods"菜单项在弹出的“SelectMethodstoImplement”对话框中,点击OK按钮这样就可以实现所有的接口函数了。使用菜单实现接口方法把光标定位到接口名,执行菜单“Code”-“ImplementMethods”在弹出的“SelectMethodstoImplement”对话框中,点击OK按钮这样就可以实现所有的接口函数了
5. android 从第一个页面跳转到第二个页面之后 在第二个页面的按钮上开始一个倒计时 要怎么实现
可以使用Handler来做
比如下面的代码片段,开始一个30秒的倒计时
在Application.onCreate()里TestMain.getInstance().setContext(this);
或则在你的第二个页面onCreate()里TestMain.getInstance().setContext(this);
之后启动倒计时并刷新页面
TestMain.getInstance().startCountdownTask(new CountdownTask("taskid1", 30));
publicclassTestMain{
//用于保存倒计时任务已经完成的计数
;
;
=newTestMain();
privateTestMain(){}
(){
returnINSTANCE;
}
//在主线程里调用,比如Application.onCreate()中TestMain.getInstance().setContext(this);
publicvoidsetContext(Contextcontext){
mCountdownPrefs=context.getSharedPreferences("countdwon",Context.MODE_PRIVATE);
mCountdownHandler=newHandler();
}
//在需要倒计时任务的时候调用
publicvoidstartCountdownTask(){
//如果有未完成的倒计时任务,读取上次倒计时到几了,否则就是设置的count次
intcount=mCountdownPrefs.getInt(countdownTask.taskId,countdownTask.count);
countdownTask.count=count;
//首先执行一次
countdownTask.notify(countdownTask.count);
//之后每一秒执行一次
mCountdownHandler.postDelayed(newRunnable(){
@Override
publicvoidrun(){
//1秒执行一次
if(countdownTask.countDown()){
mCountdownHandler.postDelayed(this,1000);
}else{
//倒计时结束
mCountdownHandler.removeCallbacks(this);
//移除任务
mCountdownPrefs.edit().remove((countdownTask.taskId)).commit();
}
}
},1000);
}
{
/**倒计时起始值*/
privateintcount=30;
/**倒计时任务id*/
privateStringtaskId="";
publicCountdownTask(intcount,StringtaskId){
this.count=count;
this.taskId=taskId;
}
privatebooleancountDown(){
count--;
booleanisContinue=count>=0;
notify(Math.max(count,0));
returnisContinue;
}
//通知更新
publicvoidnotify(intcurrent){
//UI更新倒计时数字,current是当前倒计时到多少了
}
}
}
6. android 用 service 和 CountDownTimer 实现一个倒计时器的功能
在平时我们编程的时候,经常会用到倒计时这个功能,很多人不知道Android已经帮封装好了一个类,往往都自己写。现在发现了这个类,大家共享一下:
在一个TextView不断显示剩下的时间,代码如下:
[java] view plain
private TextView vertifyView;
private CountDownTimer timer = new CountDownTimer(10000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
vertifyView.setText((millisUntilFinished / 1000) + "秒后可重发");
}
@Override
public void onFinish() {
vertifyView.setEnabled(true);
vertifyView.setText("获取验证码");
}
};
调用的时候很简单:timer.start();
最后说明一下:CountDownTimer timer = new CountDownTimer(10000, 1000)中,第一个参数表示总时间,第二个参数表示间隔时间。意思就是每隔一秒会回调一次方法onTick,然后10秒之后会回调onFinish方法。