何时使用' new'用于实例化对象的关键字

时间:2015-08-20 12:49:06

标签: java android

我正在学习如何编程Android应用程序。我正在搞乱它。

现在我正在创建一个自定义Toast,我用XML创建一个布局并将该XML转换为java(使用LayoutInflater类),以便布局显示在Toast和然后在2-3秒后消失(使用Toast.LENGTH_LONG)。

我正在观看关于该视频的YouTube视频,我注意到了一些事情。这个人说他在写这篇文章时实例化了一个对象:

LayoutInflater inflater= getLayoutInflator();

但我认为您需要使用new关键字来实例化/创建对象,以便为什么不使用它。然后我尝试写

LayoutInflater inflater = new LayoutInflater();

并收到以下错误:

Cannot instantiate the type LayoutInflater.

我知道在尝试从界面创建对象时会出现此错误,但我不认为layoutinflater是一个接口而是一个类。

2 个答案:

答案 0 :(得分:3)

LayoutInflater是一个abstract类。因此,它无法实例化。

答案 1 :(得分:2)

LayoutInflater是一个抽象类,因此您无法像这样实例化。但是你可以做到以下几点:

LayoutInflater inflater = LayoutInflater.from(context);

或者

LayoutInflater inflater = (LayoutInflater)context.getSystemService
      (Context.LAYOUT_INFLATER_SERVICE);

如果您在Activity课程,也可以拨打getLayoutInflater()