【问题标题】:How to Create a LayoutInflator?如何创建 LayoutInflater?
【发布时间】:2018-12-30 13:48:14
【问题描述】:

我使用了构造函数,但是它不起作用。

LayoutInflater layoutInflater = new LayoutInflater(getContext());

Android Studio 将以下代码用红色下划线

new LayoutInflater(getContext());

它说“LayoutInflator 是抽象的;不能被实例化。

【问题讨论】:

  • “不起作用”是什么意思?请详细说明是什么问题。获得LayoutInflater 的最佳方式是在您的Activity 上致电getLayoutInflater()
  • 我已根据您提出的问题更新了我的问题。

标签: java android xml layout layout-inflater


【解决方案1】:

LayoutInflater 是抽象类,所以你不能只创建它。你应该使用实用函数LayoutInflater.from(context)

【讨论】:

  • 好了,这样就明白了,如果不能直接调用,那为什么要有构造函数,构造函数有什么用?据我所知,构造函数是唯一的创建类的对象实例的方法。我怎么知道哪个类不能用构造函数变成对象?
  • @SarveshThiruppathi 是的。它有构造函数,因为即使它是抽象类,它也可能需要一些参数。然后你要做的是扩展该抽象类,并通过super 调用它的构造函数——在本例中为super(context)。基本上,您只能创建未声明abstract 的类的对象。这里,LayoutInflater 声明为:public abstract class LayoutInflater
  • 所以,有一个超类只是因为当我们扩展那个类时,我们需要调用 super(context)
猜你喜欢
  • 2023-01-12
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多