无法使用CursorLoader和ContentProvider填充ListView

无法使用CursorLoader和ContentProvider填充ListView,listview,cursorloader,media,contentprovider,android,Listview,Cursorloader,Media,Contentprovider,Android,我正在尝试使用存储在SD卡上的歌曲填充我的,但它在运行时停止了我的应用程序…希望能够获得一些关于如何实际实现代码的帮助 package com.example.listofsongs; import android.app.ListActivity; import android.app.LoaderManager; import android.content.CursorLoader; import android.content.Loader; import android.databa

我正在尝试使用存储在SD卡上的歌曲填充我的,但它在运行时停止了我的应用程序…希望能够获得一些关于如何实际实现代码的帮助

package com.example.listofsongs;

import android.app.ListActivity;
import android.app.LoaderManager;
import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore.Audio.Media;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class MainActivity extends ListActivity implement LoaderManager.LoaderCallbacks<Cursor>{

SimpleCursorAdapter mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1,null, new String[]{Media.DISPLAY_NAME}, new int[]{android.R.id.text1}, 0);
    setListAdapter(mAdapter);
    getLoaderManager().initLoader(0, null, this);
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, position, id);
}


static final String[] DISPLAY_NAME={Media.DISPLAY_NAME};

@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {

    Uri baseUri;
    baseUri = Media.EXTERNAL_CONTENT_URI;
    return new CursorLoader(this, baseUri, DISPLAY_NAME, null, null, null);
}

@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
    // TODO Auto-generated method stub
    mAdapter.swapCursor(arg1);
}

@Override
public void onLoaderReset(Loader<Cursor> arg0) {
    // TODO Auto-generated method stub
    mAdapter.swapCursor(null);
}


}
package com.example.listofsongs;
导入android.app.ListActivity;
导入android.app.LoaderManager;
导入android.content.CursorLoader;
导入android.content.Loader;
导入android.database.Cursor;
导入android.net.Uri;
导入android.os.Bundle;
导入android.provider.MediaStore.Audio.Media;
导入android.view.view;
导入android.widget.ListView;
导入android.widget.SimpleCursorAdapter;
公共类MainActivity扩展ListActivity实现LoaderManager.LoaderCallbacks{
简单的适应;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
mAdapter=new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1,null,新字符串[]{Media.DISPLAY_NAME},新int[]{android.R.id.text1},0);
setListAdapter(mAdapter);
getLoaderManager().initLoader(0,null,this);
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
//TODO自动生成的方法存根
super.onListItemClick(左、右、位置、id);
}
静态最终字符串[]DISPLAY_NAME={Media.DISPLAY_NAME};
@凌驾
公共加载器onCreateLoader(int arg0,Bundle arg1){
uribaseuri;
baseUri=Media.EXTERNAL\u CONTENT\u URI;
返回新的游标装入器(this,baseUri,DISPLAY\u NAME,null,null,null);
}
@凌驾
公共void onLoadFinished(加载器arg0,光标arg1){
//TODO自动生成的方法存根
swapCursor(arg1);
}
@凌驾
公共void onLoaderReset(加载程序arg0){
//TODO自动生成的方法存根
mAdapter.swapCursor(空);
}
}

请发布您的logcat错误跟踪。该代码未在avd上运行…我尝试过,但在控制台中显示它正在运行,但什么也没有发生…并且现在无法在调试器模式下将我的手机连接到eclipse…logcat未显示任何错误…在avd上,主屏幕保持打开状态,当我运行应用程序时没有任何活动弹出…当我尝试运行代码时,手机会自动关闭…我不确定是否有人能在不知道问题的情况下帮助你!:(但代码是正确的,我认为…..avd根本无法运行该应用程序,因为它没有音乐文件,光标加载程序可以在这些文件上运行…..我试图在avd中推送这些文件,但它是只读的…..我甚至搜索了文档…..但是没有足够的示例…..你说你的应用程序在运行时停止。不是吗很明显,他的意思是发生了崩溃,这意味着出现了错误(不一定是代码中的错误)。除非我们看到错误日志,否则我们将无法帮助您:(