1

FragmentActivity に実装されている ViewPager を使用してユーザーがページを変更したときにフラグメント コンテンツを更新するための優れたソリューションを探しています。 FragmentActivity を次のように実装しました

 List<Fragment> fragments = new Vector<Fragment>();
  private void initialisePaging() {
         for(int i=0;i<getCount;i++){
                fragments.add(Fragment.instantiate(this, DetailInfoFragment.class.getName()));
         }          
        this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
        ViewPager pager = (ViewPager) super.findViewById(R.id.viewPager);
        pager.setAdapter(this.mPagerAdapter);
        pager.setCurrentItem(itemNumber);

        pager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int arg0) {
                Log.v("onPageSelected", "arg0 "+arg0);

                MyAdapter getVal = new MyAdapter(InformationActivity.this);
                Log.v("InformationActivity ", "getTitle : == > "+getVal.titles[arg0]);
                Log.v("InformationActivity ", "getSubTitle : == > "+getVal.subTitles[arg0]);

                getSharedPreferences("Values", 0).edit().putString("Title", getVal.titles[arg0]).commit();
                getSharedPreferences("Values", 0).edit().putString("SubTitle", getVal.subTitles[arg0]).commit();
                getSharedPreferences("Values", 0).edit().putInt("Image", getVal.images[arg0]).commit();

            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub

            }
        });


    }

アクティビティとフラグメントの間でデータを共有するために共有設定を使用しました。

次のように、フラグメントを拡張する DetailInfoFragment を実装しました。

        @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View f1Vew = inflater.inflate(R.layout.details, container, false);
    imageIcon = ((ImageView)f1Vew.findViewById(R.id.imagLrg));
    titleTxt = ((TextView)f1Vew.findViewById(R.id.titleText));
    subTxt = ((TextView)f1Vew.findViewById(R.id.subTitleText));
            String titleMain = getActivity().getSharedPreferences("Values", 0).getString("Title", "");
    String subMain = getActivity().getSharedPreferences("Values", 0).getString("SubTitle", "");

    Log.v("DetailInfoFragment : ", "tilte : "+titleMain);
    Log.v("DetailInfoFragment : ", "subMain : "+subMain);

    titleTxt.setText(""+titleMain);
    subTxt.setText(""+subMain);
    imageIcon.setImageResource(getActivity().getSharedPreferences("Values", 0).getInt("Image", 0));
    return f1Vew;
}  

上記の実装から、ユーザーがビューページャーの助けを借りてページをスワイプすると、InformationActivity から DetailsFragment に同じタイトルとサブタイトルを取得しています。タイトル、画像アイコン。私の場合、フラグメントコンテンツを更新するにはどうすればよいですか

4

0 に答える 0