2017-02-15 77 views
0

playlists.java未显示列表视图中的片段

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> 

,所以我想显示在列表视图片段歌曲,但它不工作,我请大家帮忙我。我正在尝试制作音乐播放器应用程序。

当应用程序启动时,listview不显示它只显示一个空白屏幕。

+0

你的观点应该被夸大'onCreateView'不在'onViewCreated' – Sony

回答

1

看起来好像你错过了onCreateView方法。您需要实现类似:

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

如果以上的答案是正确的,那么请把它标记为答案,并发布了新的问题。 –

+0

我认为我们需要更多的上下文。请发布一个新问题。 –