zoukankan      html  css  js  c++  java
  • 使用Toast的setText()实现倒计时

    点击按钮发送短信以后,倒计时3秒钟后退出Activity。本来想用弹出多个Toast的方法实现,后来发现效果不好,因为Toast.LENGTH_LONG显示3秒钟,Toast.LENGTH_SHORT显示2秒钟,如果每秒倒计时一次,后面的Toast弹出来时,前面的Toast还没有消失。用Toast的setText()方法解决了这个问题。

    TimerTask和Handler变量:

    	TimerTask task = new TimerTask(){  
    	      public void run() {  
    	      Message message = new Message();     
    	      handler.sendMessage(message);    
    	   }  
    	};
    	
    	final Handler handler = new Handler(){  
    		public void handleMessage(Message msg) {
    			Log.v("num=", String.valueOf(num));
    			num++;
    			if (num < 5){
    				tst.setText(String.valueOf(4-num) +"秒后退出!");
    			}
    			else
    			{
    				timer.cancel();
    				sndActivity.this.finish();
    			}
    		}; 
    	};
    

    按钮点击事件:

    		btnSend.setOnClickListener(new View.OnClickListener() {
    			
    			@Override
    			public void onClick(View v) {
    				sendMsg();
    				tst = Toast.makeText(context, "短信已发送!", Toast.LENGTH_LONG);
    				tst.show();
    				num = 0;
    				timer = new Timer(true);
    				timer.schedule(task, 1000, 1000);
    			}
    		});
    

    其中tst是Toast变量。

      

  • 相关阅读:
    WPF 中 TextBlock 文本换行与行间距
    WPF中TextBox文件拖放问题
    WPF 自定义鼠标光标
    矩形覆盖
    跳台阶和变态跳台阶
    用两个栈实现队列
    重建二叉树
    从尾到头打印链表
    替换空格
    斐波那契数列
  • 原文地址:https://www.cnblogs.com/mstk/p/3612309.html
Copyright © 2011-2022 走看看