Android之Toast的高级使用

举报
yechaoa 发表于 2022/05/30 22:57:03 2022/05/30
1.4k+ 0 0
【摘要】 Toast作为提示,一般在用户进行某个操作之后出现,告诉用户结果或给用户提示,过一会就自动消失,不会阻碍用户操作。 1.一般使用 Toast.makeText(MainActivity.this, "testContent", Toast.LENGTH_SHORT).show(); 参数1:上下文。参数二:提示内容。...

Toast作为提示,一般在用户进行某个操作之后出现,告诉用户结果或给用户提示,过一会就自动消失,不会阻碍用户操作。


1.一般使用

Toast.makeText(MainActivity.this, "testContent", Toast.LENGTH_SHORT).show();
 

参数1:上下文。参数二:提示内容。参数三:显示时长。

Toast.LENGTH_SHORT是短时间内。Toast.LENGTH_LONG则与之相反。


2.高级使用(自定义布局,控制显示位置、文字大小,避免多次点击多次显示,主线程子线程)

a.封装


      public class MyUtil {
         /**
       * Toast
       */
         private static Toast toast;
         public static void showToast(final String msg) {
             //主线程
             if ("main".equals(Thread.currentThread().getName())) {
                  creatToast(msg);
              } else {
                 //子线程
                  SpUtil.getActivity().runOnUiThread(new Runnable() {
                     @Override
                     public void run() {
                          creatToast(msg);
                      }
                  });
              }
          }
         /**
       * 避免多次点击多次显示
       * @param msg
       */
         private static void creatToast(String msg) {
             if(toast==null){
                 //创建
                  toast = Toast.makeText(SpUtil.getActivity(), msg, Toast.LENGTH_SHORT);
              }else{
                 //直接赋值
                  toast.setText(msg);
              }
             //引用自定义布局
             LinearLayout linearLayout = (LinearLayout) toast.getView();
             TextView messageTextView = (TextView) linearLayout.getChildAt(0);
             //设置显示位置
              toast.setGravity(Gravity.CENTER, 0, 0);
             //设置文字大小
              messageTextView.setTextSize(15);
              toast.show();
          }
         /**
       * 取消,页面跳转之后,上一个页面的toast应该立马消失,此方法在Activity的onDestroy中调用即可
       */
         public static void cancelToast() {
             if(toast!=null){
                  toast.cancel();
              }
          }
      }
  
 

在Activity中或者BaseActivity的onCreate中加上

SpUtil.setActivity(this);  
 

关于SpUtil的使用可查看上一篇文章:http://blog.csdn.net/yechaoa/article/details/60572384

两个util配合使用效果更佳,onCreate中加一次就行了。


MyUtil.showToast("支付成功");
 

MyUtil.cancelToast();
 


文章来源: blog.csdn.net,作者:yechaoa,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/yechaoa/article/details/60572130

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。