0
からのフラグメントのTextView(ビューページ内)へのアクセスタイトルに記載されているように、フラグメント内のTextViewをアクセスしようとしています(setTextなど)。フラグメントはアクティビティ内のビューページにロードされます。このTextViewにアクティビティクラスからアクセスしたいと思います。アクティビティ
private PagerAdapter mPagerAdapter;
private ViewPager pager;
FragmentPageOne fragPageOne;
FragmentPageTwo fragPageTwo;
活動ののonCreateの発揮:
fragPageOne= new FragmentPageOne();
fragPageTwo = new FragmentPageTwo();
mPagerAdapter = new ViewPagerAdapter(this, getSupportFragmentManager(),
fragPageOne.getClass(), fragPageTwo.getClass(),
);
pager = (ViewPager) findViewById(R.id.eventPager);
pager.setAdapter(mPagerAdapter);
ViewPagerAdapterクラス:
public class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Class<? extends Fragment>> fragmentsClasses;
private final Context context;
public EventViewPagerAdapter(Context context, FragmentManager fm, Class<? extends Fragment>... fragmentsClasses) {
super(fm);
this.context = context;
this.fragmentsClasses = Arrays.asList(fragmentsClasses);
}
public Fragment getItem(int position) {
return Fragment.instantiate(context, fragmentsClasses.get(position).getName());
}
@Override
public int getCount() {
return fragmentsClasses.size();
}
}
FragmentPageOneクラス(FragmentPageTwoの構造が類似している。):
public class FragmentPageOne extends Fragment {
public View rootView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if(container == null) {
return null;
}
rootView = inflater.inflate(R.layout.fragment_page_1, container, false);
return (LinearLayout) rootView;
}
}
私は取得していますヌル・ポインタ(明らかに)私は(活動自体の中で)これを使用しよう:
TextView text = (TexView) pager.findViewById(R.id.textview1);
text.setText("hello world);
入力いただきありがとうございます。これは私の活動の中でですか? –
はい、これを達成できるかどうか教えてください。 –
私は試しました。しかし、それでも同じエラーが発生します。私は電話しました: 'View current = getVisibleFragment()。getView(); TextView text =(TextView)current.findViewById(R.id.textview1); text.setText( "asdf"); ' –