• 使用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变量。

      

  • 相关阅读:
    An AODV Tutorial
    MFC去掉单文档的"无标题-"的方法
    win32 openss 编译
    ASP.NET实现RENREN SIG计算
    std::string str.c_str() const
    fopen
    curl with ssl support for win32
    VC++ utf8 Unicode GB2312 编码转换
    编码转换
    VirtualBox uuid冲突问题
  • 原文地址:https://www.cnblogs.com/mstk/p/3612309.html
Copyright © 2020-2023  润新知