Как отобразить сообщение Toast из класса, который не расширяет Activity [duplicate]

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

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

 user151388913 июл. 2012 г., 10:29
Вы имеете в виду этот Toast.makeText (getApplicationContext (), «сервер ошибок не отвечает» + e.getMessage (), Toast.LENGTH_SHORT) .show ();
 AkashG13 июл. 2012 г., 12:11
попробуйте с getActivity () везде, где вы используете контекст
 T.Todua16 янв. 2017 г., 16:15
Не дублированный вопрос. Это другая проблема, чем в теме.
 Paramvir Singh13 июл. 2012 г., 10:37
Для отображения Toast требуется ссылка на объект Context. Вы можете передать контекст или объект действия в класс, где вы хотите создать тост.
 AkashG13 июл. 2012 г., 10:31
Пожалуйста, отправьте код, чтобы узнать с легкостью.

Ответы на вопрос(2)

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

  public static void showToastMethod(Context context) {
        Toast.makeText(context, "mymessage ", Toast.LENGTH_SHORT).show();
  }
 13 июл. 2012 г., 11:59
Это похоже на отличный способ утечки контекста. Скорее передать контекст в качестве аргументаshowToastMethod() и использовать его оттуда. Постоянная ссылка на него может быть плохой, если экземпляр вашего класса живет дольше, чем действие / служба / .., к которой относится контекст. Создание этой ссылки статической не делает ее лучше, а скорее хуже.
 13 июл. 2012 г., 12:05
Да, это. Это немного скучно редактирование и повторное редактирование, чтобы удовлетворить требования (не) клиента
 13 июл. 2012 г., 10:40
см редактировать ...
 user151388913 июл. 2012 г., 10:37
мой метод, который используется, чтобы показать тост в блоке try catch является статическим

Вы можете передать контекст этой активности в свой класс, передав значение в класс 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();
  }

}

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

Ваш ответ на вопрос