这可能是一个菜鸟问题,但我想知道为什么我们必须使用静态方法(makeText)来创建 Toast 而不是构造函数。
为什么我们必须使用这个:
makeText(Context context, CharSequence text, int duration)
而不是这个:
new Toast(Context context, CharSequence text, int duration)
这是 makeText 方法:
public static Toast makeText(Context context, CharSequence text, int duration) {
Toast result = new Toast(context);
LayoutInflater inflate = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflate.inflate(com.android.internal.R.layout.transient_notification, null);
TextView tv = (TextView)v.findViewById(com.android.internal.R.id.message);
tv.setText(text);
result.mNextView = v;
result.mDuration = duration;
return result;
}
为什么我们没有以下内容:
public Toast (Context context, CharSequence text, int duration) {
this(context);
LayoutInflater inflate = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflate.inflate(com.android.internal.R.layout.transient_notification, null);
TextView tv = (TextView)v.findViewById(com.android.internal.R.id.message);
tv.setText(text);
this.mNextView = v;
this.mDuration = duration;
}
我出于任何原因搜索了网络和源代码,但没有找到。
如果您有想法,请不要犹豫。