18

我有一个位置监听器活动,我想发出 toast 通知。但它不会让我this作为上下文传递。我应该如何制作吐司?

4

7 回答 7

23

如果 toast 位于您的活动类中,您可以使用YourActiviy.thiswhereYourActivity是类名。如果它在你的类之外,你需要获取你的活动上下文(在构造函数中传递它等)。

于 2011-04-12T20:25:13.700 回答
7

如果你在内部班级,那么也试试这个

获取应用程序上下文()

于 2011-04-13T01:58:27.943 回答
5

您可以使用NameOfYourActivity.this

例如:

public class MyActivity extends Activity {

 ...
     Toast.makeText(MyActivity.this, text, duration).show();
于 2011-04-12T20:19:28.837 回答
2

例如,如果您有一个侦听器,其中有一个名为“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();
            }
        });
    }

那应该这样做。

于 2011-04-13T03:10:26.223 回答
2

字段变量: Context context;

在 OnCreate 内: context = this;

Xamarin / C# 语法: Toast.MakeText(context, "your message", ToastLength.Long).Show();

安卓/Java语法: Toast.makeText(context, "your message", Toast.LENGTH_LONG).show();

于 2017-04-28T03:32:43.613 回答
1

而是尝试 getApplicationContext()

 Toast tea = Toast.makeText(getApplicationContext(), "Send", Toast.LENGTH_LONG);
 tea.show();
于 2014-10-16T07:52:22.560 回答
0

听起来您在 Activity 的内部类中。如果是这样,请尝试 ActivityName.this。

于 2011-04-12T20:25:55.387 回答