zoukankan      html  css  js  c++  java
  • 当时遇到的主要难点在于TextView的内容不会刷新改变值,今天终于通过Timer和Handler实现了,分享给大家

    import java.util.Timer;
    import java.util.TimerTask;
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class AndroidLuckyActivity extends Activity
    {
            private TextView textView;
            private Button button_start;
            private Button button_end;
            private Boolean begined = false;
            private Timer timer;
            private Handler handler;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            init();
            handler = new Handler()
            {
     public void handleMessage(Message msg)
                    {
                            super.handleMessage(msg);
                            if(begined == true)
                            {
                                    textView.setText("" +msg.what);
                            }
                            else if(begined == false)
                            {
                        textView.setText("" + msg.what);
                                    timer.cancel();                        //Timer停止
                            }
                    }
            };
        }
    
        void init()
        {
                textView = (TextView)this.findViewById(R.id.tv);
                button_start = (Button)this.findViewById(R.id.btn_start);
                button_end = (Button)this.findViewById(R.id.btn_end);
            button_start.setOnClickListener(new Button.OnClickListener()
            {
                            @Override
                            public void onClick(View v)
                            {
                                    // TODO Auto-generated method stub
                                    begined = true;
                                    button_start.setEnabled(false);
                                    button_end.setEnabled(true);
                                    timer = new Timer();
                                    timer.schedule(new TimerTask() 
                                    {
                                            @Override
                                            public void run()
                                            {
                                                    // TODO Auto-generated method stub
                                                    Message message = new Message();
                                                    message.what = (int) (Math.random() * 999 + 100);
                                                    handler.sendMessage(message);
                                            }
                                    }, 1000, 30);        //从1000ms即1s开始,30ms为数字改变周期
                            }
            });
            button_end.setOnClickListener(new Button.OnClickListener()
            {
                            @Override
                            public void onClick(View v)
                            {
                                    // TODO Auto-generated method stub
                                    begined = false;
                                    button_start.setEnabled(true);
                                    button_end.setEnabled(false);
                            }
            });
        }
    }

    运行图:

  • 相关阅读:
    剑指offer---第一个只出现一次的字符
    剑指offer---两个链表的第一个公共结点
    剑指offer---丑数
    剑指offer---旋转数组的最小数字
    剑指offer---滑动窗口的最大值
    剑指offer---重建二叉树
    剑指offer---数据流中的中位数
    剑指offer---二叉搜索树的第K个节点
    剑指offer--对称二叉树
    剑指offer---把二叉树打印成多行
  • 原文地址:https://www.cnblogs.com/vus520/p/2561966.html
Copyright © 2011-2022 走看看