[英]Toast works fine in main Activity but not in a class
在MainActivity
使用Toast
可以正常工作
Toast.makeText(getApplicationContext(), "Button is clicked", Toast.LENGTH_LONG).show();
但是当我在类中使用它时, getApplicationContext()
会变成红线,并且不起作用。 如何在课堂上使用它?
您需要将上下文从Activity传递到非Activity类,并在那里使用相同的上下文
new NonActivityClass(ActivityName.this);
然后
COntext mContext;
public NonActivityClass(Context context)
{
mContext =context;
}
然后
Toast.makeText(mContext, "Button is clicked", Toast.LENGTH_LONG).show();
注意:请勿保留对上下文活动的长期引用(对活动的引用应与活动本身具有相同的生命周期),以避免内存泄漏。
如果您想从课堂上敬酒,则应将上下文发送给您的课堂。
不用担心上下文相关性的问题。
代替使用getApplicationContext()
使用Activityname.this
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.