如何使用Toast和Handler的间隔

来源:爱站网时间:2020-12-18编辑:网友分享
我们在项目开发过程中都需要实现一个“来电归属地”的功能,因此都会使用Toast,但是由于Toast的显示时间不受我们控制,我们就需要提供两个配置参数,接下来我们就一起去看看如何使用Toast和Handler的间隔的方法。

我们在项目开发过程中都需要实现一个“来电归属地”的功能,因此都会使用Toast,但是由于Toast的显示时间不受我们控制,我们就需要提供两个配置参数,接下来我们就一起去看看如何使用Toast和Handler的间隔的方法。
       下面开始讲解代码实现详情!
       先写一个包装类,就叫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();
   }
}
}

上文就是小编介绍如何使用Toast和Handler的间隔的内容,小编在这里先说明一下,本次需要用到Handle机制,因此不了解或者不熟悉Handle的同学,请先去看看Android上的Handle机制!

上一篇:Android开发之文本编程的操作技巧

下一篇:如何获取Android正在运行的任务和服务

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载