【问题标题】:List view not shown in fragment片段中未显示列表视图
【发布时间】:2017-02-15 16:49:23
【问题描述】:

播放列表.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());
    }
}}

播放列表.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 不显示它只显示一个空白屏幕。

【问题讨论】:

  • 你的视图应该在onCreateView而不是onViewCreated中膨胀

标签: android listview android-viewpager audio-player android-music-player


【解决方案1】:

您似乎缺少 onCreateView 方法。你需要实现类似的东西:

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

【讨论】:

  • 如果以上答案正确,请标记为答案并发布新问题。
  • 我认为我们需要更多的上下文。请发布一个新问题。
猜你喜欢
  • 1970-01-01
  • 2015-01-28
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多