在我的应用中,我使用Toasts作为
Toast.makeText(getBaseContext(), "Updating...", Toast.LENGTH_SHORT).show();
到目前为止一直运作良好。现在我突然对所有的祝酒词都出现以下错误。
无法解决方法
getBaseContext()
我在这里找到了 this 问题,这是通过让类扩展ActionBarActivity
来解决的。
我的toast所在的类是MainActivity.java
并扩展AppCompatActivity
,并实现View.OnTouchListener
。我怀疑它与此有什么关系,因为无论如何这个类都在扩展Activity
。
我曾多次尝试清理和重建项目。此外,我已经完成了#34; Invalidate Caches / Restart ......"
答案 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();