Android Studio无法解析方法getBaseContext(),但它曾用于

时间:2016-08-31 09:50:47

标签: java android

在我的应用中,我使用Toasts作为

Toast.makeText(getBaseContext(), "Updating...", Toast.LENGTH_SHORT).show();

到目前为止一直运作良好。现在我突然对所有的祝酒词都出现以下错误。

  

无法解决方法getBaseContext()

我在这里找到了 this 问题,这是通过让类扩展ActionBarActivity来解决的。 我的toast所在的类是MainActivity.java并扩展AppCompatActivity,并实现View.OnTouchListener。我怀疑它与此有什么关系,因为无论如何这个类都在扩展Activity

我曾多次尝试清理和重建项目。此外,我已经完成了#34; Invalidate Caches / Restart ......"

5 个答案:

答案 0 :(得分:1)

尝试使用此功能。它对我来说很完美

Toast.makeText(getApplicationContext(), "Updating...", Toast.LENGTH_SHORT).show();

尝试此代码....有时它会起作用

Toast.makeText(this, "Updating...", Toast.LENGTH_SHORT).show();

答案 1 :(得分:1)

使用此

Toast.makeText(getApplicationContext(), "your Message", Toast.LENGTH_SHORT).show();

答案 2 :(得分:1)

试试这个

Toast.makeText(YourClass.this.getBaseContext(), "Updating...", Toast.LENGTH_SHORT).show();

或清理构建项目

答案 3 :(得分:1)

更新Android Studio可以解决问题。有时,解决方案非常简单。感谢您的所有建议!

答案 4 :(得分:0)

使用Toast的最佳实践是使用上下文

在Utils.class类中创建一个方法
public class Utils {
 public static void showToast(Context context, String msg) {
        Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
    }
}

然后你可以这样称呼:

 Utils.showToast(context, context.getString(R.string.cannot_connect));

如果你说你使用片段或活动来调用Toast方法,我可以更新我的问题。

关于活动的

只是调用它,如果没有帮助尝试使用getApplicationContext

在片段中创建类似:

private Context context;
    private Activity activity;

@Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        this.activity = activity;
        context = activity.getApplicationContext();
    }

但如果你不需要片段使用活动:

@Override
    public void onAttach(Context context) {
        super.onAttach(context);
        context = getApplicationContext();
    }

也尝试制作上下文

private Context context

和OnCreate

context = getApplicationContext();