如何更改片段中的文本?

How to change texts in Fragments?

提问人:PetiteMouse 提问时间:12/2/2022 更新时间:12/2/2022 访问量:17

问:

我想更改片段中的文本,但我总是收到这样的错误

java.lang.NullPointerException: Attempt to read from field 'android.widget.TextView com.javahelp.databinding.FragmentHomeBinding.Aboutus' on a null object reference in method 'android.view.View com.javahelp.frontend.fragments.HomeFragment.onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)'
                                                                                                        

`

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v =  inflater.inflate(R.layout.fragment_home, container, false);
    binding.Aboutus.setText("Changed");
    return v;
}

`

下面的一个是我切换片段的主页 `


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    binding = ActivityFgBinding.inflate(getLayoutInflater());
    setContentView(binding.getRoot());
    replaceFragment(new HomeFragment());

    binding.bottomNavigationView.setOnItemSelectedListener(item ->{
        switch(item.getItemId()){
            case R.id.home:
                replaceFragment(new HomeFragment());
                break;
            case R.id.account:
                replaceFragment(new AccountFragment());
                break;
            case R.id.search:
                replaceFragment(new SearchFragment());
                break;
        }
        return true;
    });
}

`

我原以为家庭片段中的“关于我们”这个词会变成“改变”。我正在尝试查看setText是否正常工作,但事实并非如此。我寻找可能的解决方案,但它们不起作用。所以我不确定如何解决这个问题。感谢一些帮助和建议!

android-fragments nullpointerexception fragment settext updateview

评论


答:

0赞 ninhnau19 12/2/2022 #1

你不能在 onCreateView 方法中设置文本,将此行放入 onViewCreated 方法中