2013-07-15 59 views
0

我正在製作一個音樂播放器,我只是試圖使用ListFragment顯示藝術家名稱。下面是代碼:我正在使用ListFragment,但我在使用LoaderManager時遇到了一些問題

import android.app.ListFragment; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.provider.MediaStore; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.LoaderManager; 
import android.support.v4.content.CursorLoader; 
import android.support.v4.content.Loader; 
import android.support.v4.widget.CursorAdapter; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class AlbumsFragment extends ListFragment implements 
LoaderManager.LoaderCallbacks <Cursor> { 

    AlbumsAdapter mAdapter; 

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


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

     mAdapter = new AlbumsAdapter(getActivity(), null); 
     setListAdapter(mAdapter); 

     getLoaderManager().initLoader(0, null, this); 
    } 


    static final String[] ALBUM_SUMMARY_PROJECTION = { 
     MediaStore.Audio.Albums._ID, MediaStore.Audio.Albums.ALBUM 
    }; 



    public Loader <Cursor> onCreateLoader(int id, Bundle args) { 
     String select = null; 
     return new CursorLoader(getActivity(), MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, ALBUM_SUMMARY_PROJECTION, select, null, null); 
    } 



    public void onLoadFinished(Loader <Cursor> loader, Cursor data) { 
     mAdapter.swapCursor(data); 
    } 



    public void onLoaderReset(Loader <Cursor> loader) { 
     mAdapter.swapCursor(null); 
    } 
} 

我得到一個錯誤說: 方法initLoader(INT,捆綁,LoaderManager.LoaderCallbacks)在類型LoaderManager不適用於參數(INT,空,AlbumsFragment)

回答

0

你有沒有在你的進口中看到這個?

import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.LoaderManager; 
import android.support.v4.content.CursorLoader; 
import android.support.v4.content.Loader; 
import android.support.v4.widget.CursorAdapter; 

這意味着您使用的是LoaderManager的支持版本。

所以,你應該更換

getLoaderManager().initLoader(0, null, this);  

隨着

getSupportLoadManager().initLoader(0, null, this); 
+0

我試過,但它顯示錯誤說「方法getSupportLoaderManager()未定義的類型AlbumsFragment」 – max59

0

你也應該使用

import android.support.v4.app.ListFragment; 

你目前正在使用,而不是支持一個標準ListFragment。

相關問題