2017-06-23 5 views
0

私はこの問題に取り組んでいます。私は最初のフラグメント-1のデータしか見ることができませんが、右にスワイプすると、フラグメント-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; 
     }     
    } 

//フラグメント-2コード: -

プライベートArrayListsongsList =新しい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); 
     } 

    }); 

} 
+0

を使用し、私はこれは間違っていると思うフラグメント https://github.com/codepath/android_guides/wiki/ViewPager-with-FragmentPagerAdapter

でviewPagerを使用するためのコードパスのチュートリアルに従ってください? –

+0

私はケース-1で曲のクラスを入れます。それは、私が別の断片のために右にスワイプすると、曲のすべての関連データを表示します。断片のデータはありません。 – rupesh

+0

フラグメント2のoncreateにログを書き込み、フラグメント2が実行されているかどうかを確認します。 –

答えて

0

あなたは曲のコードを投稿することができ

PagerAdapter pagerAdapter = new myPagerAdapter(getSupportFragmentManager()); 

ではなく

FragmentPagerAdapter pagerAdapter = new myPagerAdapter(getSupportFragmentManager()); 
+0

私は試してみましたが、作業していません。 – rupesh

+0

なぜフラグメントクラスの中でonActivityCreatedを使用していますか? onCreate、onCreateViewメソッドを使用する –

関連する問題