0

いくつかのページを含むビューページャーを作成しようとしていますが、すべてのページが同じ (データが異なるだけ) に見えるため、フラグメント クラスを作成し、追加しようとしています。その同じクラスのviewpagerアダプタインスタンス...しかし、私はできません..

すべてのページが同じフラグメント クラスのインスタンスであるビューページャーを作成するにはどうすればよいですか? 意味: 同じデザイン - 異なるデータ

編集... ここから一般的なコードを取得しました... http://tamsler.blogspot.co.il/2011/10/android-viewpager-and-fragments.html

そしてそれを少しひねった

public class MainActivity extends FragmentActivity {

private com.example.trying1.PagerAdapter mAdapter;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initPaging();
}

private void initPaging() {
    List<Fragment> fragments = new ArrayList<Fragment>();
    NoteFragment nf = new NoteFragment();
    Bundle bundle = new Bundle();
    bundle.putString("noteTitle", "A");
    nf.setArguments(bundle);

    NoteFragment nf1 = new NoteFragment();
    Bundle bundle1 = new Bundle();
    bundle1.putString("noteTitle", "B");
    nf1.setArguments(bundle1);

    fragments.add(nf);
    fragments.add(nf1);
    this.mAdapter = new com.example.trying1.PagerAdapter(
            getSupportFragmentManager(), fragments);

    ViewPager vPager = (ViewPager) findViewById(R.id.pager);
    vPager.setAdapter(this.mAdapter);
}

}

4

1 に答える 1

-1

もちろんできます。エラーが発生したり、データが更新されませんか?

編集:

パラメータとして受け入れてページを計算するために、フラグメントをどのようにコーディングしたかにも依存しますか?

public class MainActivity extends FragmentActivity {

private MyFragmentPagerAdapter mAdapter;    
private List<Fragment> fragments;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initPaging();
}

private void initPaging() {
    fragments = new ArrayList<Fragment>();
    this.mAdapter = MyFragmentPagerAdapter(
            getSupportFragmentManager());
    ViewPager vPager = (ViewPager) findViewById(R.id.pager);

    //Add 3 fragments
     for(int i =0; i<3; i++)
       addFragments(i);

    //Set adapter     
     vPager.setAdapter(this.mAdapter);
}

 private void addFragments(int i){
   NoteFragment nf = new NoteFragment(i); //Pass data to the fragment, so it can process it
   //You may pass it as a bundle if you wish
   fragments.add(nf)
}    

//アダプターコード

private static class MyFragmentPagerAdapter extends FragmentPagerAdapter {  

           public MyFragmentPagerAdapter(FragmentManager fm) {  
                super(fm);  
           }  

           @Override  
           public Fragment getItem(int index) {     
                return fragments.get(index);
           }  

           @Override  
           public int getCount() {     
                return fragments.size();  
           }  
      }  

}
于 2012-07-26T18:06:01.027 に答える