如何将一个碎片切换到另一个片段



请帮助我陷入这个问题。我只能看到第一个fragment-1的数据,但是当我正确滑动时,没有fragment-2的数据。

ViewPager pager;
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list_layout);
    PagerAdapter pagerAdapter = new myPagerAdapter(getSupportFragmentManager());
    pager = (ViewPager)findViewById(R.id.pager);
    pager.setAdapter(pagerAdapter);
}
 private class myPagerAdapter extends FragmentPagerAdapter {
        public myPagerAdapter(FragmentManager fm) {
            super(fm);
        }
        @Override
        public Fragment getItem(int pos) {
            switch(pos){            
            case 0: 
                return  new Artists();          
            case 1:             
                return new Songs();
            default:                
                return null;
            }
        }
        public int getCount() {
            return 2;
        }                  
   }

//fragment-2代码: -

private arraylistongslist = new arraylist((;

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
    return inflater.inflate(R.layout.songs_activity, container, false);     
}
public void onActivityCreated(Bundle savedInstanceState){
    super.onActivityCreated(savedInstanceState);
    // whatever you want to do!!
    Context context = null;
    String selection = MediaStore.Audio.Media.IS_MUSIC+ "!=0";
    String sortOrder = MediaStore.Audio.Media.DEFAULT_SORT_ORDER;
    String[] projection = {
                  MediaStore.Audio.Media._ID,
                  MediaStore.Audio.Media.DATA,
                  MediaStore.Audio.Media.ARTIST,
                  MediaStore.Audio.Media.TITLE,
                  MediaStore.Audio.Media.ALBUM,
                  MediaStore.Audio.Media.ALBUM_ID,
    };
    // now we need to query for taking song's data from sd card
    Cursor cursor = this.getActivity().managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
            projection, selection, null, null);
    while(cursor.moveToNext()){
        songsList.add(cursor.getString(0));
        songsList.add(cursor.getString(1));
        songsList.add(cursor.getString(2));
        songsList.add(cursor.getString(3));
        songsList.add(cursor.getString(4));
        songsList.add(cursor.getString(5));
    }
    ListView lv = (ListView)getActivity().findViewById(R.id.listView);
    int a[]= new int[]{R.id.txt1 ,R.id.txt2};
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this.getActivity(),
            R.layout.play_item, cursor, new String[]{MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.ARTIST}, a);
    lv.setAdapter(adapter);
    lv.setOnItemClickListener(new OnItemClickListener(){
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub
            int songIndex1 = position;
            Intent i = new Intent(getActivity().getBaseContext(),Musik.class);
            i.putExtra("songIndex", songIndex1);            
            startActivity(i);
        }
    });
}

请按照codepath教程使用fightpager和fragmenthttps://github.com/codepath/android_guides/wiki/viewpager-with-fragmentpageradapter

我认为这是错误的,

PagerAdapter pagerAdapter = new myPagerAdapter(getSupportFragmentManager());

而是使用

FragmentPagerAdapter pagerAdapter = new myPagerAdapter(getSupportFragmentManager());

最新更新