2017-02-15 1 views
0

playlists.javaVoir la liste ne figure pas dans le fragment

public class playlists extends Fragment { 
private ArrayList<musics> songList; 
private ListView songView; 
public playlists() { 
    // Required empty public constructor 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    songList = new ArrayList<musics>(); 
    getSongList(); 
    Collections.sort(songList, new Comparator<musics>(){ 
     public int compare(musics a, musics b){ 
      return a.getTitle().compareTo(b.getTitle()); 
     } 
    }); 
    Adapter songAdt = new Adapter(getActivity(), songList); 
    songView.setAdapter(songAdt); 

} 

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    songView = (ListView) view.findViewById(R.id.song_list); 
    // Inflate the layout for this fragment 

} 
public void getSongList() { 
    ContentResolver musicResolver = getActivity().getContentResolver(); 
    Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
    Cursor musicCursor = musicResolver.query(musicUri, null, null, null, null); 
    //retrieve song info 
    if(musicCursor!=null && musicCursor.moveToFirst()){ 
     //get columns 
     int titleColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media.TITLE); 
     int idColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media._ID); 
     int artistColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media.ARTIST); 
     //add songs to list 
     do { 
      long thisId = musicCursor.getLong(idColumn); 
      String thisTitle = musicCursor.getString(titleColumn); 
      String thisArtist = musicCursor.getString(artistColumn); 
      songList.add(new musics(thisId, thisTitle, thisArtist)); 
     } 
     while (musicCursor.moveToNext()); 
    } 
}} 

playlist.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".playlists"> 

<ListView 
    android:id="@+id/song_list" 
    android:layout_width="fill_parent" 
    android:layout_marginTop="102dp" 
    android:layout_height="wrap_content" > 
</ListView></RelativeLayout> 

donc je suis en train d'afficher des chansons en listview dans le fragment, mais il ne fonctionne pas pour moi s'il vous plaît aider moi. J'essaie de faire une application de lecteur de musique avec elle.

Lorsque l'application a démarré, la liste n'apparaît pas. Elle affiche uniquement un écran vide.

+0

Votre vue devrait être gonflé dans 'onCreateView' pas dans le' onViewCreated' – Sony

Répondre

1

Il semble que la méthode onCreateView vous manque. Vous devez mettre en œuvre quelque chose comme:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.playlist, container, false); 
} 
+0

Si la réponse ci-dessus est correcte, marquer s'il vous plaît comme la réponse et signaler une nouvelle question. –

+0

Je pense que nous avons besoin de plus de contexte. S'il vous plaît poster une nouvelle question. –