[英]How to display a Toast using a Fragment within a Navigation Drawer
在我从导航抽屉中选择一个菜单项并且应用程序切换到该fragment
后,我试图显示祝酒词。 我在fragment
的onCreate()
方法中有这行代码,以便在片段膨胀时显示它,但它不起作用:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
myView = inflater.inflate(R.layout.post_layout, container, false);
//My toast wont work!!:(
Toast.makeText(Post_Fragment.this, "It worked!", Toast.LENGTH_SHORT).show();
return myView;
}
有什么想法吗? 谢谢您的帮助。
尝试改变:
Toast.makeText(Post_Fragment.this, "It worked!", Toast.LENGTH_SHORT).show();
到
Toast.makeText(getActivity(), "It worked!", Toast.LENGTH_SHORT).show();
或者将makeText()
调用放在包含片段的活动的onNavigationItemSelected()
方法中。 在这种情况下,您的电话将与此类似。
Toast.makeText(this, "It workded!", Toast.LENGTH_SHORT).show();
makeText()
的第一个参数是上下文对象。 从文档中, Context
是:
与有关应用程序环境的全局信息的接口。 这是一个抽象类,其实现由Android系统提供。 它允许访问特定于应用程序的资源和类,以及对应用程序级操作的向上调用,例如启动活动、广播和接收意图等。
您的活动类扩展了上下文。 你的片段类没有。 您调用的方法是静态的,因此它无权访问特定于应用程序的资源和类/等。 传递上下文(您的活动),使其可以访问这些资源。
干杯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.