我有一個片段在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