我是新来的,我很抱歉,如果这是一个糟糕的问题要问。但我想知道这两个版本的代码之间的区别。Toast.makeText(...)和toastObj.makeText(...)为什么运行不同?
1)这一个将允许Toast瞬间改变。
public Toast toast;
public void showToast(String text)
{
if (toast != null)
{
toast.cancel();
}
toast = Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG);
toast.show();
}
2)这个不会瞬间改变。
public Toast toast;
public void showToast(String text)
{
if (toast != null)
{
toast.cancel();
}
toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();
}
为什么它必须是Toast class.makeText而不是toastObject.makeText? 还是因为show()方法必须是分开的? 我还是Java和Android的新手,有人能解释两者之间的根本区别吗?提前致谢。
fyi,if将永远不会被输入,即'toast'将始终为空。它已被声明但未被实例化。 –
'toast!= null'将会如何通过,它总是为空。另外这怎么不会崩溃你的应用程序,因为它应该是 – tyczj
'makeText()'被声明为'static',[见文档](https://developer.android.com/reference/android/widget/Toast.html#makeText (android.content.Context,int,int),所以它没有被类的实例引用 –