gpt4 book ai didi

android - 在 Activity 和 ViewPager fragment 之间进行通信

转载 作者:行者123 更新时间:2023-11-30 01:23:09 25 4
gpt4 key购买 nike

如下图所示,我有一个 Activity,里面有一个 ViewPager(带有 TabLayout)。现在我想刷新 ViewPager FragmentTextView 的文本。我该怎么做?

http://imgur.com/0kWQCfx[抱歉图片链接,但我还没有足够的声誉。]

我已经尝试过这样的事情了:

//In Activity
View root = getLayoutInflater().inflate(R.layout.fragment_home, null);
TextView textView = (TextView) root.findViewById(R.id.text_view);
textView.setText("test");

但是我得到了 textView 的 NullPointerException

编辑 1:我只需要访问一个 fragment 内的组件,所以我没有在适配器内使用数组。我将 ViewPagerAdapter 更改为:

public class ViewPagerAdapter extends FragmentPagerAdapter {
public HomeFragment fragment;

...

@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return fragment = new HomeFragment();
case 1:
...
default:
return null;
}
}

但我仍然在这里得到一个NullPointerException:

final Fragment root = viewPagerAdapter.fragment;
Log.d("testtest", String.valueOf(root == null));

最佳答案

在您要更改 fragment 值的 Activity 中编写此代码。您的 fragment ID 例如我的 fragment

Fragment frag = getFragmentManager().findFragmentById(R.id.my_fragment)
((TextView) frag.getView().findViewById(R.id.text_view)).setText(s);

关于android - 在 Activity 和 ViewPager fragment 之间进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36798953/

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