Android-自定义吐司类

问题描述 投票:1回答:1

我正在尝试创建一个类,每当该类的对象被闲置时,该类都可以显示敬酒。

我想这样做,以免每次活动都重复相同的吐司代码...

我正在使用的以下代码有两个错误。它们以这种方式突出显示**。

第一个错误是在活动上下文中,第二个错误是在getAssets函数中加载字体。

public class Toast extends android.widget.Toast {
    String toast_text;
    Context toast_context;

    public Toast(String toast_text, Context toast_context) {
        this.toast_text = toast_text;
        this.toast_context = toast_context;

        Toast toast = android.widget.Toast.makeText(**this.toast_context.this**, this.toast_text, Toast.LENGTH_LONG);
        ViewGroup view = (ViewGroup) toast.getView();
        view.setBackgroundResource(R.drawable.background_global);
        TextView messageTextView = (TextView) view.getChildAt(0);
        messageTextView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
        messageTextView.setTextSize(35);
        Typeface face_font = Typeface.createFromAsset(**getAssets()**, "res/font/aldrich.ttf");
        messageTextView.setTypeface(face_font);
        messageTextView.setTextColor(Color.CYAN);
        toast.show();
    }
}

我做错了什么?我不明白...该代码在其他活动中也能正常工作...

这些是以下错误:

关于构造函数:““ android.widget.toast”中没有默认的构造函数;

关于第一个错误:“')'预期”;

关于第二个错误:“无法解析方法“ getAssests””。

java android toast android-toast
1个回答
1
投票

使用通过构造函数收到的toast_context创建toast并访问asset

Toast toast = android.widget.Toast.makeText(toast_context, toast_text, Toast.LENGTH_LONG);

Typeface face_font = Typeface.createFromAsset(toast_context.getAssets(), "res/font/aldrich.ttf");

此外,您应该使用Toast以外的其他名称来创建自定义吐司

class MyToast extends android.widget.Toast {

    public MyToast(String toast_text, Context toast_context) {
        super(toast_context);

        ...

    }
}
© www.soinside.com 2019 - 2024. All rights reserved.