c'est parce que ProfileFragment
n'est pas encore visible. Vous démarrez une activité non fragmentée.
Tout d'abord, vous devez l'intention du TabbedAct avec une valeur supplémentaire
Intent intent = new Intent(MainActivity.this, TabbedAct.class);
intent.putExtra("Name", username);
startActivity(intent);
Puis, en activité TabbedAct, vous devez initialiser votre ProfileFragment
String username = getIntent().getStringExtra("Name");
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPagerAdapter.addFragment(ProfileFragment.newInstance(username),"Tab1");
viewPagerAdapter.addFragment(Fragment2.newsIntance(),"Tab2");
viewPagerAdapter.addFragment(Fragment2.newsIntance(),"Tab3");
.....
viewpager.setAdapter(viewPagerAdapter);
viewpager.setCurrentItem(0);
viewPagerAdapter.notifyDataSetChanged();
et les codes de ProfileFragment
public static ProfileFragment newInstance(String username) {
ProfileFragment f = new ProfileFragment();
Bundle bdl = new Bundle();
bdl.putString("NAME", username);
f.setArguments(bdl);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_profile, container, false);
profilename = (TextView) rootView.findViewById(R.id.profile);
String name= this.getArguments().getString("NAME");
profilename.setText(name);
return rootView;
}
vous ne possédez pas ViewPagerAdapter. Vous pouvez utiliser mes
public class ViewPagerAdapter extends FragmentStatePagerAdapter {
private List<Fragment> mFragmentList;
private List<String> mFragmentTitleList;
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
mFragmentTitleList = new ArrayList<>();
mFragmentList = new ArrayList<>();
}
@Override
public Fragment getItem(int index) {
return mFragmentList.get(index);
}
@Override
public int getCount() {
return mFragmentList.size();
}
@Override
public int getItemPosition(Object object){
return PagerAdapter.POSITION_NONE;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
if (position >= getCount()) {
FragmentManager manager = ((Fragment) object).getFragmentManager();
FragmentTransaction trans = manager.beginTransaction();
trans.remove((Fragment) object);
trans.commit();
}
}
public void addFragment(Fragment fragment,String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
double possible de [chaîne passe de l'activité principale de fragments de fragments activité viewpager] (http://stackoverflow.com/questions/21573810/pass-string-from-fragment-main-activity -to-fragments-activity-in-viewpager) –