gpt4 book ai didi

java - Android:Fragment:为什么我只能在 onCreateView 方法中获取对 View 的引用?

转载 作者:行者123 更新时间:2023-12-01 20:17:27 27 4
gpt4 key购买 nike

我是一个新手,目前正在学习java。在我的 MainActivity 上打开 Fragment 后,我想更改 Fragment 中的 View 。我注意到我不能像在 MainActivity 中那样在自由选择的方法中使用 findViewById(R.id.viewNameInXml) 。经过一段时间的搜索,我找到了获取 View 引用的解决方案:我必须将 FragmentonCreate() 方法更改为以下内容:

View inf = inflater.inflate(R.layout.fragment_name, container, false);
TextView tv = (TextView)
inf.findViewById(R.id.textViewIdXml);
zv.setText("new text");
return inf;

我的问题是:为什么我只能通过这种方式访问​​TextView?请记住,我是初学者,所以请尽量保持简单-

最佳答案

这并不是说您只能在 onCreateView 中访问它,而是该方法是使用 findViewById() 并保存对其中某些 View 的引用的方便位置。您还可以使用 onViewCreated 来实现此目的。

为什么这两种方法访问Views比较方便? Fragment 没有 findViewById 方法,因此您需要一个 View 来调用该方法。在onCreateView中,您已经膨胀了 View 层次结构,因此您有一个 View ;在第二个中, View 层次结构的 Root View 作为方法参数传递,因此您又拥有了一个 View 。

除了这两个方法之外,您还可以通过调用 getView() 来获取 Fragment 的 Root View ,但请注意,这可能会返回 null 取决于由于 Fragment 生命周期而被调用的时间。 (顺便说一句,上面的方法都是生命周期方法。)

关于java - Android:Fragment:为什么我只能在 onCreateView 方法中获取对 View 的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45496403/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com