2 yue1liang1chuan yue1liang1chuan 于 2013.06.07 15:16 提问

SimpleCursorAdapter错误

在异步任务中添加SimpleCursorAdapter 时出现错误。

private class LoadNewsLists extends AsyncTask<String, Void, Cursor> {
     @Override
     protected void onPreExecute() {         
     }


     @Override
     protected Cursor doInBackground(final String... args) {
         Cursor cursor = dbHelper.fetchMainActivity();
         return cursor;
     }


     protected void onPostExecute(final Cursor cursor) {
         String[] columns = new String[] {
                  DatabaseUtil.rtitle,
                  DatabaseUtil.rtypeof
          };

          // the XML defined views which the data will be bound to
          int[] to = new int[] {
            R.id.idTitle,
            R.id.idType
          };

          // create the adapter using the cursor pointing to the desired data
          //as well as the layout information
          dataAdapter = new SimpleCursorAdapter(
            MainActivity.this, R.layout.listhome,
            cursor,
            columns,
            to,
            0);

          listView = (ListView) findViewById(R.id.list);
          listView.setAdapter(dataAdapter);          
     }

然后出现这些错误:

06-07 09:14:33.496: E/AndroidRuntime(21735): Caused by: java.lang.NullPointerException
06-07 09:14:33.496: E/AndroidRuntime(21735):    
at com.ppshein.test.MainActivity$LoadNewsLists.doInBackground(MainActivity.java:38)

3个回答

shaojie519
shaojie519   2013.06.07 16:54
已采纳

检查下在你返回dbHelper.fetchMainActivity()之前是否调用了cursor.close()方法,或者你取到的cursor就是null

Jave_
Jave_   2013.06.07 15:21

错误很明显 空指针,Cursor cursor = dbHelper.fetchMainActivity();做了什么操作

ren_list
ren_list   2013.06.07 15:36

这报的是空指针异常,好好看看那个地方传值是空的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android的SimpleCursorAdapter出错
在Android开发中,如果用到了Sqlite,那么最好和ContentProvider结合使用。这样数据库的生命周期就不用自己操心了。然后,如果要在比如ListView中显示,可以使用CursorAdapter。简化的办法是使用子类SimpleCursorAdapter。以下就介绍一下使用sqlite+cursor adapter的最简单实现示例。代码如下:         ContactDA
android listview 用simplecursoradapter适配器数据刷新
一般用到了cursoradapter适配器,也会用到加载器,是Android3.0加入的, 用来异步加载数据, 当数据库中改变时,会自动通过观察者模式知道数据库改变了.然后调用加载器中的onLoadFinished方法,然后调用cursoradapter.swapCursor(游标) 就可以刷新listview了
SimpleCursorAdapter的简单使用
SimpleCursorAdapter的简单实用跟数据库交互式andorid程序最常用的功能,数据库和视图的同步,CursorAdapter是与数据库交互Adapter的最常用的类。同时它的子类SimpleCursorAdapter也是我们常用的操作类库。 这是一个用起来很方便的适配器类,它主要将Cursor与TexiView或ImageView进行映射。比如,你想设定要展示三列,那么当做好绑定
2011-06-14 11:28 SimpleCursorAdapter中的newView(),bindVew(),changeCursor()&&显示SD卡中的音乐文件
public class TTActivity extends ListActivity {     private String[] mCursorCols;//columns     TrackListAdapter mAdapter;     Cursor mTrackCursor;     public void onCreate(Bundle savedInstanceState
使用SimpleCursorAdapter的ListView如何更新显示
做笔记本应用,遇到数据库中的信息变化,如何使相应的ListView更新的问题。 查资料后解决, 用ListView来显示数据库的数据时,经常会用到SimpleCursorAdapter来作为ListView的适配器,这时要用到Cursor来访问数据库,当数据库数据发生改变时,需要通过cursor.requery()方法来更新ListView。注:这个方法在API11以后被废弃了,原因是
通过定制SimpleCursorAdapter来实现ListView
本例把SimpleCursorAdapter做了一下扩展。每一项item可由layout中listitem.xml来控制布局。数据可由sqlite中取出。 1.上主代码: 01 package com.CursorAdapterTest; 02   03
android 使用SimpleCursorAdapter将SQLite数据显示到ListView
android 使用SimpleCursorAdapter将SQLite数据显示到ListView我们知道,使用ListView的时候需要一个数据源,可以是本地数据,可以是网络数据。本篇博文使用SQLite为ListView提供数据源。一、首先我们需要创建一个数据库表格。 a、建立一个类 DBHelper 继承 SQLiteOpenHelper . public class DBHelper
Android开发模板------自定义SimpleCursorAdapter的使用
SimpleCursorAdapter直接使用的方法: SimpleCursorAdapter允许你绑定一个游标的列到ListView上,并使用自定义的layout显示每个项目。 SimpleCursorAdapter的创建,需要传入当前的上下文、一个layout资源,一个游标和两个数组:一个包含使用的列的名字,另一个(相同大小)数组包含View中的资源ID,用于显示相应列的数据值。 /
安卓小渣渣的成长之路1.0——使用SimpleCursorAdapter添加列表视图内容(获取手机通讯录名字)
首先声明本人对安卓一窍不通
Android中Adapter之SimpleCursorAdapter使用
此Adapter(SimpleCursorAdapter)是Android专门为了连接数据库与视图而产生的.此例中借助ListView体现SimpleCursorAdapter的用法。因为,ListView在android中是比较常用的视图组件,不论是静态还是动态都可以在其上显示。当然,在实际的android项目中需要显示的数据一般都是动态从数据库表中获取的。而SimpleCursorAdapte