大家好,我有2个像这样的Toast版本
版本1:
Toast.makeText(getApplicationContext(),"hello",Toast.LENGTH_LONG).setGravity(Gravity.CENTER,0,0).show();
版本2:
Toast t = Toast.makeText(getApplicationContext(),"hello",Toast.LENGTH_LONG);
t.setGravity(Gravity.CENTER,0,0);
t.show();
版本2工作正常但版本1不正常。 它给出错误无法解析方法show()。 这里出了什么问题?
当我编写版本1删除setGravity()方法然后它工作正常
Toast.makeText(getApplicationContext(),"hello",Toast.LENGTH_LONG).show();
你能解释一下吗。
答案 0 :(得分:4)
Toast.makeText(this, getString(R.string.back_not_allowed), Toast.LENGTH_SHORT)
会返回Toast
个实例,因此您可以在其上调用show()
函数,但Toast.makeText(this, getString(R.string.back_not_allowed), Toast.LENGTH_SHORT).show()
会返回void
,因此您无法使用setGravity(Gravity.CENTER,0,0)
}} 超过它。这就是你必须在变量中获取Toast
的实例然后使用它的原因。
答案 1 :(得分:1)
我只是在尝试进行书中的扩展挑战时尝试这样做,Android Programming: The Big Nerd Ranch
然后我查了官方文档,发现它现在被忽略了。
从 official docs 开始,这是在较新的 Android 版本上运行时的无操作(无操作)。
这些是自原始帖子以来发生的变化。