Android - тост по индивидуальному заказу - PullRequest
1 голос
/ 10 февраля 2020

Я пытаюсь создать класс, который должен показывать тост каждый раз, когда объект этого класса задевается.

Я хочу сделать так, чтобы у меня не было одинакового кода тоста, повторяемого в каждом действии ...

В следующем коде, который я использую, есть две ошибки. Они выделены **, как это **.

Первая ошибка в контексте действия и вторая ошибка в функции 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 "".

1 Ответ

1 голос
/ 10 февраля 2020

Используйте 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);

        ...

    }
}
...