我有一个片段在ViewPager
我的活动,每一页都有一个textview
,我想了textview
的文本从onCreate
方法中包含viewpager
活动而改变。我应该怎么做呢?如何更改视图ViewPager片段
是,将返回一个空对象异常的代码:
片段:
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);
}
}
适配器:
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;
}
}
活动的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
}
谢谢你!
因为你的片段仍然没有'attached',所以'onCreateView'仍不调用并且你的'TextView'为空。有关更多信息,请参见[片段生命周期](https://dzone.com/articles/visualization-android-activity)。 – NamNH
那么我应该如何去改变文本或从主要活动中检查textview的状态? (也可以看看) – TPWang
请试试这个[教程](https://guides.codepath.com/android/ViewPager-with-FragmentPagerAdapter) – NamNH