Вопрос по android, android-activity, toast – Как отобразить сообщение Toast из класса, который не расширяет Activity [duplicate]

9

Possible Duplicate:
How do I make a toast from a non activity class?

Как я могу создать и показатьToast сообщение из класса, который не расширилActivity учебный класс? Я использую этот класс в другом классе, который расширенActivity.

Не дублированный вопрос. Это другая проблема, чем в теме. T.Todua
попробуйте с getActivity () везде, где вы используете контекст AkashG
Для отображения Toast требуется ссылка на объект Context. Вы можете передать контекст или объект действия в класс, где вы хотите создать тост. Paramvir Singh
Пожалуйста, отправьте код, чтобы узнать с легкостью. AkashG
Вы имеете в виду этот Toast.makeText (getApplicationContext (), «сервер ошибок не отвечает» + e.getMessage (), Toast.LENGTH_SHORT) .show (); user1513889

Ваш Ответ

2   ответа
15

Вам нужна контекстная ссылка. Просто есть вспомогательный метод, как

  public static void showToastMethod(Context context) {
        Toast.makeText(context, "mymessage ", Toast.LENGTH_SHORT).show();
  }
см редактировать ...
Это похоже на отличный способ утечки контекста. Скорее передать контекст в качестве аргументаshowToastMethod() и использовать его оттуда. Постоянная ссылка на него может быть плохой, если экземпляр вашего класса живет дольше, чем действие / служба / .., к которой относится контекст. Создание этой ссылки статической не делает ее лучше, а скорее хуже.
Да, это. Это немного скучно редактирование и повторное редактирование, чтобы удовлетворить требования (не) клиента
мой метод, который используется, чтобы показать тост в блоке try catch является статическим user1513889
5

Вы можете передать контекст этой активности в свой класс, передав значение в класс nonActivity

пример:

new NonActivityClass(Activityclass.this) ;

и как в ответе выше

new MyClass(ActivityClass.this);

В NonActivityClass

public class NonActivityClass {

  public NonActivityClass (Context context) {

        Toast.makeText(context, "mymessage ", Toast.LENGTH_SHORT).show();
  }

}

Надеюсь, что это работает для вас...

Похожие вопросы