J'ai un ViewPager
avec des fragments dans mon activité, chaque page a une textview
, je souhaite modifier le texte de la textview
de la méthode onCreate
dans l'activité qui contient le viewpager
. Comment devrais-je faire cela?Comment changer des vues en ViewPager Fragment
ci-dessous est le code qui renvoie une exception objet null:
Fragment:
public class MyFragment extends Fragment {
private TextView textView;
public static MyFragment getInstance(){
return new MyFragment();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_layout, container, false);
textView = (TextView) rootView.findViewById(R.id.textView);
return rootView;
}
public void setText(String text){
textView.setText(text);
}
}
Adaptateur:
public class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return MyFragment.getInstance();
}
@Override
public int getCount() {
return 3;
}
}
Activité onCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
final ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
MyFragment fragment = (MyFragment) adapter.getItem(0);
fragment.setText("Altered"); // and this returns null pointer exception
}
Remerciez toi!
Ce fragment parce que votre toujours pas 'attached', donc' onCreateView' toujours pas appelé et votre 'TextView' est nul. Voir [fragment lifecycle] (https://dzone.com/articles/visualization-android-activity) pour plus d'informations. – NamNH
Alors, comment dois-je changer le texte ou vérifier l'état de la vue par rapport à l'activité principale? (a.k.a. obtenir la vue) – TPWang
S'il vous plaît essayer ce [tutoriel] (https://guides.codepath.com/android/ViewPager-with-FragmentPagerAdapter) – NamNH