繁体   English   中英

如何在导航抽屉中使用片段显示 Toast

[英]How to display a Toast using a Fragment within a Navigation Drawer

在我从导航抽屉中选择一个菜单项并且应用程序切换到该fragment后,我试图显示祝酒词。 我在fragmentonCreate()方法中有这行代码,以便在片段膨胀时显示它,但它不起作用:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM