私はここに新しいです、これは尋ねるには厄介な質問である場合は謝罪します。しかし、これら2つのバージョンのコードの違いを知りたいと思います。Toast.makeText(...)とtoastObj.makeText(...)が異なる動作をするのはなぜですか?
1)これはトーストが瞬時に変更できるようにします。
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の新しいですが、誰かが2つの基本的な違いは何かを説明することができますか?前もって感謝します。 MAKETEXTは()だから、
import android.widget.Toast;
としてインポートされたトーストクラスから来るので
fyiの場合、ifは決して入力されません。つまり、 'toast'は常にnullになります。それは宣言されていますが、インスタンス化されていません。 –
'toast!= null'はどのようにして渡され、いつもnullになるでしょう。 – tyczj
である必要があるため、これはあなたのアプリをクラッシュさせない方法です。 'makeText()'は 'static'と宣言されています。[documentationを参照](https://developer.android.com/reference/android/widget/Toast.html#makeText –