У меня есть функция прослушивания местоположения, и я хочу делать уведомления о тостах. Но это не позволит мне передать this
как контекст. Как я должен делать тосты?
Как использовать Toast, когда я не могу использовать "this" как контекст
Ответ 1
Если тост находится внутри вашего класса активности, вы можете YourActiviy.this
, где YourActivity
- это имя класса. если он находится вне вашего класса, вам нужно получить свой контекст активности (передать его в конструкторе и т.д.).
Ответ 2
Вы можете использовать NameOfYourActivity.this
Например:
public class MyActivity extends Activity {
...
Toast.makeText(MyActivity.this, text, duration).show();
Ответ 3
Если вы находитесь во внутреннем классе, попробуйте также
getApplicationContext()
Ответ 4
Например, если у вас есть слушатель с методом "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();
}
});
}
Это должно сделать это.
Ответ 5
вместо этого попробуйте getApplicationContext()
Toast tea = Toast.makeText(getApplicationContext(), "Send", Toast.LENGTH_LONG);
tea.show();
Ответ 6
Полевая переменная: Context context;
внутри OnCreate: context = this;
Xamarin/С# Синтаксис:
Toast.MakeText(context, "your message", ToastLength.Long).Show();
Синтаксис Android/Java:
Toast.makeText(context, "your message", Toast.LENGTH_LONG).show();
Ответ 7
Похоже, вы находитесь во внутреннем классе в Activity. Если это так, попробуйте ActivityName.this.