gpt4 book ai didi

java - 如何在同一方法中返回fragment和fragmentactivity?

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:12 25 4
gpt4 key购买 nike

我有三个选项卡。其中两个选项卡扩展了 Fragment,第三个选项卡扩展了 FragmentActivity。如何实现getItem()方法?

public class UpdatesFragment extends FragmentActivity  {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.updates_layout);

if (savedInstanceState == null) {
addRssFragment();
}
}

private void addRssFragment() {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
RssFragment fragment = new RssFragment();
transaction.add(R.id.fragment_container, fragment);
transaction.commit();
}

@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean("fragment_added", true);
}
}

public class TabFragment extends Fragment {

public static TabLayout tabLayout;
public static ViewPager viewPager;
public static int int_items = 3;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
/**
*Inflate tab_layout and setup Views.
*/
View x = inflater.inflate(R.layout.tab_layout,null);
tabLayout = (TabLayout) x.findViewById(R.id.tabs);
viewPager = (ViewPager) x.findViewById(R.id.viewpager);

/**
*Set an Apater for the View Pager
*/
viewPager.setAdapter(new MyAdapter(getChildFragmentManager()));

/**
* Now , this is a workaround ,
* The setupWithViewPager dose't works without the runnable .
* Maybe a Support Library Bug .
*/

tabLayout.post(new Runnable() {
@Override
public void run() {
tabLayout.setupWithViewPager(viewPager);
}
});

return x;
}
}

class MyAdapter extends FragmentPagerAdapter{

public MyAdapter(FragmentManager fm) {
super(fm);
}

/**
* Return fragment with respect to Position .
*/
@Override
public Fragment getItem(int position)
{
switch (position){
case 0 : return new PrimaryFragment();
case 1 : return new SocialFragment();
case 2: return new UpdatesFragment();
}

return null;
}

@Override
public int getCount() {
return int_items;
}

/**
* This method returns the title of the tab according to the position.
*/

@Override
public CharSequence getPageTitle(int position) {

switch (position){
case 0 :
return "Primary";
case 1 :
return "Social";
case 2 :
return "Updates";
}
return null;
}
}

最佳答案

FragmentFragmentActivity两者都是针对不同的事情。我们可以将 Fragment 包含在 FragmentActivity 中。但您不能将 FragmentActivity 用作 Fragment。如果您想在 ViewPager 中使用 UpdatesFragment,请从 Fragment 扩展它。

关于java - 如何在同一方法中返回fragment和fragmentactivity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36403373/

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