gpt4 book ai didi

java - Android - 在 View 中显示带有自定义文本的 fragment

转载 作者:行者123 更新时间:2023-12-01 11:35:00 25 4
gpt4 key购买 nike

我需要在屏幕上显示几个 fragment 。所有 fragment 都是一个 fragment 类的实例,但我需要能够设置值以查看这些 fragment 上的属性(例如 TextView 中的文本)。我从这里尝试了很多解决方案,但没有找到。我现在在做什么:

FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction = manager.beginTransaction();
List<Comment> comments = place.getComments();
int i = 0;
for (Comment comment : comments) { //some cycle...

ReviewFragment reviewFragment = new ReviewFragment();
transaction.add(scrollView.getId(), reviewFragment, "review" + i);
((TextView) reviewFragment.getView().findViewById(R.id.author)).setText(comment.getAuthor());
i++;

}
transaction.commit();

但是我得到 NullPointerException: reviewFragment.getView() is null。我尝试提交事务并在每个 fragment 之后开始新的事务,但这没有帮助。如何在 fragment View 中设置自定义值?

附注我没有在 ReviewFragment 中的重写方法中做一些特殊的事情。我应该吗?

谢谢!

最佳答案

您可以调用fragment的方法setArguments()当您构建 fragment 并传递您想要显示的文本时。然后在 ReviewFragment 类中您可以调用 getArguments()检索文本并显示它。

在您创建 fragment 的部分:

ReviewFragment reviewFragment = new ReviewFragment();
Bundle args = new Bundle();
args.putString("text", "The text to display here");
reviewFragment.setArguments(args);
transaction.add(scrollView.getId(), reviewFragment, "review" + i);

以及 ReviewFragment 的 onCreateView() 中

// after inflating the view and before returning it
String textToDisplay = getArguments().getString("text");
myTextView.setText(textToDisplay);

关于java - Android - 在 View 中显示带有自定义文本的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30089799/

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