显示全局的Toast 防止toast重复弹出

本文介绍了一个名为ToastUtil的工具类实现,该类用于简化Android应用程序中Toast消息提示的显示方式。通过使用此工具类,开发者可以更加方便地创建自定义样式的Toast,并能重复使用同一个Toast对象来更新显示的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class ToastUtil {
    private Toast mToast = null;
    private Context mCtx;
    private static ToastUtil mToastUtil = null;

    public ToastUtil(Context ctx){
        mCtx = ctx;
    }

    public static ToastUtil getInstance(Context ctx){
        if(mToastUtil == null)
            mToastUtil = new ToastUtil(ctx);
        return mToastUtil;
    }

    public void showToast(String text,int duration) {  
        if(mToast == null) { 
            mToast = makeText(mCtx, text, duration); 
        } else {
          ((TextView)mToast.getView().findViewById(R.id.TextViewInfo)).setText(text);    
        }  
        mToast.show();
    }  

    public void cancelToast() {  
        if (mToast != null) {  
            mToast.cancel();  
        }  
    }

    public Toast makeText(Context context, String msg,int duration){
        View toastRoot = ((LayoutInflater) context.getSystemService("layout_inflater")).inflate(R.layout.my_toast, null);
        Toast toast=new Toast(context);
        toast.setView(toastRoot);
        TextView tv=(TextView)toastRoot.findViewById(R.id.TextViewInfo);
        tv.getBackground().setAlpha(100);
        tv.setText(msg);
        toast.setDuration(duration);
        return toast;
    }

xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     >

    <TextView
        android:id="@+id/TextViewInfo"
        style="@style/text_Title_style"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:layout_gravity="center" 
        android:textColor="#FFF"
        android:background="#000"/>

</LinearLayout>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值