Как использовать тост, когда я не могу использовать «это» в качестве контекста - PullRequest
16 голосов
/ 13 апреля 2011

У меня есть активность слушателя местоположения, и я хочу сделать тост-уведомления. Но это не позволит мне передать this в качестве контекста. Как мне заставить тост работать?

Ответы [ 7 ]

20 голосов
/ 13 апреля 2011

Если тост находится внутри вашего класса активности, вы можете YourActiviy.this, где YourActivity - имя класса.если он находится за пределами вашего класса, вам нужно получить контекст активности (передать его в конструктор и т. д.)

6 голосов
/ 13 апреля 2011

Если вы во внутреннем классе, попробуйте это также

getApplicationContext ()

5 голосов
/ 13 апреля 2011

Вы можете использовать NameOfYourActivity.this

Например:

public class MyActivity extends Activity {

 ...
     Toast.makeText(MyActivity.this, text, duration).show();
2 голосов
/ 28 апреля 2017

Переменная поля: 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();

1 голос
/ 13 апреля 2011

Например, если у вас есть слушатель с методом 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();
            }
        });
    }

Это должно сделать это.

0 голосов
/ 16 октября 2014

вместо этого попробуйте getApplicationContext ()

 Toast tea = Toast.makeText(getApplicationContext(), "Send", Toast.LENGTH_LONG);
 tea.show();
0 голосов
/ 13 апреля 2011

Звучит так, будто вы находитесь во внутреннем классе в Деятельности.Если это так, попробуйте ActivityName.this.

...