Как использовать тост, когда я не могу использовать "это" в качестве контекста
У меня есть активность слушателя местоположения, и я хочу сделать всплывающие уведомления. Но это не позволит мне передать this
как контекст. Как я должен заставить тост работать?
7 ответов:
Если тост находится внутри вашего класса activity, вы можете использовать
YourActiviy.this
, гдеYourActivity
- имя класса. если он находится вне вашего класса, вам нужно будет получить контекст действия (передать его в конструктор и т. д.)
Вы можете использовать
NameOfYourActivity.this
Например:
public class MyActivity extends Activity { ... Toast.makeText(MyActivity.this, text, duration).show();
Переменная поля:
Context context;
Внутри OnCreate:
context = this;
Синтаксис Xamarin / C# :
Toast.MakeText(context, "your message", ToastLength.Long).Show();
Синтаксис Android / Java:
Toast.makeText(context, "your message", Toast.LENGTH_LONG).show();
Например, если у вас есть слушатель с методом под названием "onComplete" внутри него, этот код должен работать.
public void onComplete(String response, Object state) { final String response_complete = response; MyActivity.this.runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MyActivity.this, text, duration).show(); } }); }
Этого должно хватить.