Toast和Handler的间隔使用实例

阳光的李庚

阳光的李庚

2016-02-19 09:37

下面是个简单易学的Toast和Handler的间隔使用实例教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

代码如下:

       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();
   }
}
}

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

Toast和Handler的间隔使用实例

编程语言 网络编程
Toast和Handler的间隔使用实例

Android控件系列之Toast使用介绍

编程语言 网络编程
Android控件系列之Toast使用介绍

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

实例讲解 LILO 的配置和使用

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
实例讲解 LILO 的配置和使用

Excel实例:在间隔数据中排定名次

excel
Excel实例:在间隔数据中排定名次

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

做子宫抹片的方法和时间间隔

育儿 育儿知识 妈妈 儿歌 取名 婴儿 喂养 孕期 怀孕 分娩 孕妇 教育 胎教 亲子游戏 幼儿 宝宝 早教
做子宫抹片的方法和时间间隔

Excel函数实例,在间隔数据中排定名次

电脑入门
Excel函数实例,在间隔数据中排定名次

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

MySQL 有输入输出参数的存储过程实例

MySQL 有输入输出参数的存储过程实例

发现恶意/钓鱼网站怎样通知微软客服将其屏蔽

发现恶意/钓鱼网站怎样通知微软客服将其屏蔽
下拉加载更多内容 ↓