我是新來的,我很抱歉,如果這是一個糟糕的問題要問。但我想知道這兩個版本的代碼之間的區別。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),所以它沒有被類的實例引用 –