gpt4 book ai didi

java - 通过 addFragment() 传递变量

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:20 24 4
gpt4 key购买 nike

我有一个选项卡布局,其中有通过适配器在我的主要 Activity 中添加的选项卡。我需要通过 addFrag 传递一个变量(因为每个 frag 都是根据 json 条目创建的)。见下文;

主要 Activity - FragmentPagerAdapter

static class Adapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();

public Adapter(FragmentManager manager) {
super(manager);
}

@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}

@Override
public int getCount() {
return mFragmentList.size();
}

public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}

@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}

主要 Activity - 选项卡生成器

    Adapter adapter = new Adapter(getSupportFragmentManager());
adapter.addFragment(new DashboardTabs(), "Home");
adapter.addFragment(new TeamsNewTabs(), "Teams" + _teamCount + "");
adapter.addFragment(new FixturesNewTabs(), "Fixtures" + _fixturesCount + "");
adapter.addFragment(new ResultsNewTabs(), "Results"+ _resultsCount + "");

//send var through to the fragment like so ...
//not sure how to get the "var" to even pass through ...
String var = "my Tab Name";
adapter.addFragment(new MyFragment(var), var);


viewPager.setAdapter(adapter);

MyFragment - 访问时获取 var。

    public class MyFragment extends Fragment {

//not sure how to get the var or if it even passes through ...
private getVar = var;

}

在这种情况下有办法做到这一点吗?或者我的想法是错误的。

最佳答案

像这样:在提交 fragment 之前:

Bundle b=new Bundle();
b.putInt("cid",44);
b.putString("title","name");
fragment.setArguments(b);

在 fragment 中:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle pb=getArguments();
int =pb.getInt("cid");
String title=pb.getString("title");
}

关于java - 通过 addFragment() 传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42665016/

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