实例化onCreateView(...)的参数?

时间:2018-10-17 03:37:20

标签: android android-fragments

嗨,我是android编程的新手,我将不胜感激任何可以帮助我理解这一概念的答案。预先感谢。

所以我正在研究一本有关android编程的书,并且我在页面上指示我重写onCreateView(...)方法,它像这样...

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_crime,container,false);
    return v;
}

我不明白的是,我们没有实例化参数“ LayoutInflater”,但仍然在方法语句中,我们使用对象“ inflater”来调用inflate method。与下一个参数相同,我们仅使用名称“ container”,但我没有知道我们是否可以实例化。当我们还没有实例化它时,为什么可以使用inflate?还是我们实例化了什么时候?

如果有人发现不相关的问题,我深表歉意。我只想了解概念或规则。谢谢

2 个答案:

答案 0 :(得分:0)

我们从不实例化抽象类。在您的情况下,LayoutInflater和ViewGroup都是抽象类。 android中抽象类的概念与Java中相同。 “抽象类也可以具有静态方法或字段”。因此,在没有创建其基础类LayoutInflater且本质上是抽象的对象的情况下,将调用inflate方法。

Context.getSystemService()将在应用程序级别扫描项目上的所有布局文件夹/文件。然后,您可以根据需要膨胀任何布局。希望这会有所帮助:)

https://developer.android.com/reference/android/view/LayoutInflater

https://developer.android.com/reference/android/view/ViewGroup

答案 1 :(得分:0)

查看v = inflater.inflate(R.layout.fragment_crime,container,false); TextView text =(TextView)v.findViewByid(R.id.text)