无法在活动构造函数中进行吐司

时间:2016-01-03 19:09:40

标签: android android-toast

我在Null指针异常时收到错误,并且在我在activity构造函数中创建toast时无法实例化活动。我想知道toast在forCreate方法中工作但在activity构造函数中没有的原因

2 个答案:

答案 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。