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

雪山飞鹄

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

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

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

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;

import com.zhy.shortcut.R;

public class RefershUiActivity extends Activity implements OnClickListener{
    
    private static final int UPDATA_TITIE=1;
    
    Button start;
    Button stop;
    
    //声明一个继承自Runnable的变量
    MyRunnable runnable;
    
    Handler handler;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        setContentView(R.layout.ui);
        
        runnable=new MyRunnable();
        
        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);
                //更新应用标题
                updateTitile(msg);
            }
        };
        
        
        
        start.setOnClickListener(this);
        stop.setOnClickListener(this);
        
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.start:
            //点击开始的时候调用handler.post()方法
            handler.post(runnable);
            break;
        case R.id.stop:
            //停止更新标题
            if(runnable!=null){
                handler.removeCallbacks(runnable);
            }
            break;
        default:
            break;
        }
    }
    
    
    class MyRunnable implements Runnable{

        //覆写run方法
        @Override
        public void run() {
            //创建Message
            Message msg=new Message();
            //标记消息
            msg.what=UPDATA_TITIE;
            //设置数据
            msg.obj=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date());
            //发送消息
            handler.sendMessage(msg);
            //在run方法内部在调用postDelayed()方法。
            handler.postDelayed(this, 1000);
        }
        
    }
    
    
    
    //更新标题
    private void updateTitile(Message msg) {
        switch (msg.what) {
        case UPDATA_TITIE:
            RefershUiActivity.this.setTitle(String.valueOf(msg.obj));
            break;

        default:
            break;
        }
    }
    
}
posted on 2011-12-14 15:03 雪山飞鹄 阅读(1871) 评论(0)  编辑  收藏 所属分类: android

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


网站导航: