广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Toast和Handler的间隔使用实例

    2018-04-08 09:04:02 次阅读 稿源:互联网
    广告

        本人在项目开发过程,需要实现一个“来电归属地”的功能,因此用到了Toast。但Toast的显示时间,不受我们控制,系统只提供了两个配置参数,分别是LENGTH_LONG,LENGTH_SHORT。因为要让Toast长期显示,需要另外一个线程,每隔一个时间段,就循环显示一次。
           先说明一下,本次需要用到Handle机制,因此不了解或者不熟悉Handle的同学,请先去看看Android上的Handle机制!
           下面开始讲解代码实现详情!
           先写一个包装类,就叫MyToast吧,如下

    代码如下:

           public class MyToast {
              private Context mContext = null;
              private Toast mToast = null;
              private Handler mHandler = null;
              private Runnable mToastThread  = new Runnable() {
                @Override
                public void run() {
                  mToast.show();
                  mHandler.postDelayed(mToastThread, 3000);//每隔3秒显示一次,经测试,这个时间间隔效果是最好
                }
             };
             public MyToast(Context context){
               mContext = context;
               mHandler = new Handler(mContext.getMainLooper());
               mToast = Toast.makeText(mContext, "自由@飞翔", Toast.LENGTH_LONG);
             }
             public void setText(String text){
               mToast.setText(text);
             }
            public void show(){
              mHandler.post(mToastThread);
            }
           public void cancel() {
            mHandler.removeCallbacks(mToastThread);//先把显示线程删除
            mToast.cancel();// 把最后一个线程的显示效果cancel掉,就一了百了了
           }
        }

    MainActivity 的代码如下:
    代码如下:

      public class MainActivity extends Activity implements OnClickListener{
         private Button show_button;
        private Button cancel_button;
        private MyToast myToast;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            show_button = (Button) findViewById(R.id.show_button);
            cancel_button = (Button) findViewById(R.id.cancel_button);
            show_button.setOnClickListener(this);
            cancel_button.setOnClickListener(this);
            myToast = new MyToast(this);
        }
       @Override
       public void onClick(View v) {
        if(v == show_button){
          myToast.show();
        }else if (v == cancel_button) {
         myToast.cancel();
       }
    }
    }

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告