当前位置: 首页 > 知识库问答 >
问题:

如何在片段中设置文本视图的值?

司允晨
2023-03-14

我在动态应用程序中使用片段,其中User.java文件包含值,而< code>TabbedActivity.java文件包含三个片段。我想将文本设置为< code > profile rgament . Java 中的< code>TextView。因此,我在< code > fragment _ profile . XML 中创建了一个< code>TextView,并使用以下代码从< code>TabbedActivity.java文件中引用了它

    name = findViewById(R.id.name);
    //getting the current user
    User user = SharedPrefManager.getInstance(this).getUser();
    //setting values to textviews
    name.setText(user.getUsername());

它不显示任何编译错误,但打开TabbedActivity.java后,应用程序在行停止NullPointerExceptionname.setText(user.getUsername ()); 如何解决此问题?

这是< code > profile fragment . Java 文件的代码

 public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {

    name = getActivity().findViewById(R.id.name);
    //getting the current user
    User user = SharedPrefManager.getInstance(getActivity()).getUser();
    //setting values to textviews
    name.setText(user.getUsername());

    return inflater.inflate(R.layout.fragment_profile, container, false);
}

共有2个答案

缑嘉玉
2023-03-14

您需要在片段的java文件中执行此操作,而不是在活动的java文件。现在查找片段中的视图。替换此代码:

name = findViewById(R.id.name);

收件人:

name = getActivity().findViewById(R.id.name);

其余的代码可以按原样编写。

还要将这种类型的操作放在< code>onViewCreated方法中。将此代码放入< code>onCreateView可能会导致应用程序崩溃。

柳修为
2023-03-14

您的TextView位于fragment_profile.xml中,并且您试图在TabbedActivity.java中找到TextView,因此发生NullPointerException

把这段代码放在ProfileFrgament.java

用这个更改你的代码

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) 
{ 
    final View rootView = inflater.inflate(R.layout.fragment_profile, container, false);
    name = (TextView) rootView.findViewById(R.id.name);
    User user = SharedPrefManager.getInstance(getActivity()).getUser(); 
    name.setText(user.getUsername()); 

    return rootView;
}
 类似资料:
  • 我找不到如何从< code>Activity更改fragment的< code>textview。我有4个文件: frag_class.xml有textView,我想更改MainActivity.java的文本。FragmentClass扩展了片段,此片段显示在MainActivity中,FragmentClass具有: 在MainActivity中,我尝试了这个: 但可悲的是,这段代码给了我Nu

  • 我想为我的应用程序创建一个暗模式,我唯一的问题是我无法更改片段中的文本颜色,用户可以打开/关闭暗模式。这就是为什么我无法更改清单中的主题对此问题的任何解决方案? 这是为了检测是否打开了暗模式,背景颜色是否发生了变化,但我不知道如何改变片段中的文本颜色。 这是我的设置页面(片段),我想更改标题和摘要的颜色。

  • 我需要将ViewPager放置在一个片段内部,但我有两个片段,片段1是我的菜单,片段2我想用作ViewPagerIndicator。 但一个碎片不能再有另一个碎片...我该怎么做呢?

  • 我创建了一个几乎为空的UIViewController类,名为。在视图中,我设置标题并添加一个关闭按钮到导航我tem.leftBarButtonItem。 我的如下所示: 显示viewController时,其视图的背景为黑色。如何设置它的视图以用空视图填充屏幕——就像在故事板中设置UIViewController一样? 我已经尝试将以下内容添加到视图,但是视图仍然是黑色的:

  • 问题内容: 确实需要一些建议,不知道这里出了什么问题。 上下文:2个片段,每个片段都有一个Textview,主要活动有2个按钮和一个edittext 目的:在主活动的edittext框中键入hello,然后单击片段1的按钮,textview将变为hello。 问题: 在edittext中输入hello并单击按钮1时,会遇到运行时错误。 Logcat: fragment_one.xml activi

  • 首先,我仍然是Android开发的新手,我以前在这里问过类似的问题,如何让我的片段利用我的活动数据?以及如何将数据从活动发送到片段?(Android)但似乎大多数人都不太明白我的意思,所以让我来解释一下。假设我有一个文本视图: 和一个按钮: 在我的第一个片段layout.xml中,然后我想从我的主活动中调用它们,即以获取数据,即从天气API和。Android Studio不允许您这样使用它们,所以