我在Null指针异常时收到错误,并且在我在activity构造函数中创建toast时无法实例化活动。我想知道toast在forCreate方法中工作但在activity构造函数中没有的原因
答案 0 :(得分:1)
操作系统负责构建您的Activity
课程。这是因为它需要执行一些设置,包括为Activity
提供正确的基础Context
。如果没有这个,你就无法制作Toast
s。
一般情况下,你应该避免在Activity
的构造函数中做任何事情(你绝对应该不使用new
自己制作它们的实例)。
答案 1 :(得分:0)
通常,Toast会显示为对用户输入的反馈(例如按钮单击)或注册某些外部事件(例如发生网络错误或新的传入数据)。
然而,对我而言,听起来好像你想在开启活动后立即展示Toast,这是正确的吗?然后你应该把它放在活动的onCreate
方法中。像这样的Toast示例
Toast.makeText(MainActivity.this, "Hello World", Toast.LENGTH_LONG).show();
您也可以考虑将此调用放入onResume
方法中。我建议您熟悉activity lifecycles。
您可能还想查看Snackbars,而不是使用Toasts。