我是新来的,如果这个问题不好回答,我深表歉意。但是我想知道这两个版本的代码之间的区别。

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的新手,有人可以解释一下两者之间的根本区别是什么?提前致谢。

最佳答案

这是因为makeText()来自Toast类,该类被导入为

import android.widget.Toast;


因此,这是一个静态方法,因此需要通过类名进行调用。



.show();


不必分开。

所以,

toast = Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();


将工作。

关于java - 为什么Toast.makeText(...)和toastObj.makeText(...)运行不同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45196176/

10-08 23:56