私のアプリケーションでは、ViewPagerを使用しました。好き、
(say main.xml)
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/register_header" />
そして、FragmentActivityにViewPagerオブジェクトとViewPagerAdapter(FragmentPagerAdapterを拡張する)オブジェクトを作成します。
_mViewPager = (ViewPager) findViewById(R.id.viewPager);
_adapter = new ViewPagerAdapter(getApplicationContext(),
getSupportFragmentManager());
_mViewPager.setAdapter(_adapter);
そして、Adapterクラスは次のようなものです。
public class ViewPagerAdapter extends FragmentPagerAdapter {
private Context _context;
private FragmentManager manager;
private Fragment f;
private String classname="ViewPagerAdapter";
public ViewPagerAdapter(Context context, FragmentManager fm) {
super(fm);
_context=context;
manager=fm;
}
@Override
public Fragment getItem(int position) {
Log.i(classname,"getItem called"+position);
f = new Fragment();
f=MyFragment.newInstance();
Bundle args = new Bundle();
args.putInt("position", position);
f.setArguments(args);
return f;
}
@Override
public int getCount() {
return User.getPageCount();
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
そして、MyFragmentクラスでは、
onResumeでは、wigetsオブジェクトを共通の静的変数に格納する必要があります。
public void onResume() {
super.onResume();
pageIndex = getArguments().getInt("position");
User.useTextview1=textview1;
User.useTextview2= textview2;
User.current_pageIndex=pageIndex;
}
FragmentActivityのUserクラスから取得したテキストビューを更新する必要があります。 私の問題は、getItem()メソッドが最初に2回呼び出されることです 。事実上、エミュレーターに表示されるビューは0番目のインデックスですが、FragmentActivityで1番目のインデックス値を取得しました。getItem()メソッドの呼び出しを2回停止すると、FragmentActivityで0番目のインデックスTextView参照を取得できます。
これを行うための最良の方法を教えてください。
ありがとう