温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

雪山飞鹄

温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

BlogJava 首页 新随笔 联系 聚合 管理
  215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
需求:在界面上有两个按钮,一个开始,一个停止。点击开始按钮,更新应用的标题为当前时间。按停止按钮停止更新时间。
考察:handler的使用。
这里借助Handler+Timer+TimerTask来实现

package com.zhy.ui;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import com.zhy.shortcut.R;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class UpdateUiActivity extends Activity implements OnClickListener{
    
    
    private static final int UPDATA_TITIE=1;
    
    Button start;
    Button stop;
    
    TimerTask task;
    
    Handler handler;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        setContentView(R.layout.ui);
        
        start=(Button) findViewById(R.id.start);
        stop=(Button) findViewById(R.id.stop);
        
        //实列化Handler
        handler=new Handler(){
            //处理消息
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                //标记消息
                switch (msg.what) {
                case UPDATA_TITIE:
                    //更新UI
                    updateTitle(msg);
                    break;

                default:
                    break;
                }
            }
        };
        
        start.setOnClickListener(this);
        stop.setOnClickListener(this);
        
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.start:
            //创建一个定时器
            Timer timer=new Timer();
            //创建TimerTask
            task=new TimerTask() {
                
                //实现run方法,这里存放需要实时更新时间的代码
                @Override
                public void run() {
                    //创建一个消息体
                    Message message=new Message();
                    //标记消息
                    message.what=UPDATA_TITIE;
                    //传递数据
                    message.obj=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date());
                    //发送消息
                    handler.sendMessage(message);
                }
            };
            //调度,每隔一秒中执行一次
            timer.schedule(task, 1, 1000);
            break;
        case R.id.stop:
            //停止
            if(task!=null){
                task.cancel();
            }
            break;
        default:
            break;
        }
    }
    
    /**
     * 更新应用标题
     * 
@param msg
     
*/
    private void updateTitle(Message msg) {
        UpdateUiActivity.this.setTitle(String.valueOf(msg.obj));
    }
    
    
}
posted on 2011-12-14 14:57 雪山飞鹄 阅读(1682) 评论(0)  编辑  收藏 所属分类: android

只有注册用户登录后才能发表评论。


网站导航: