Java SQLite数据库列表视图

Java SQLite数据库列表视图,java,android,sqlite,listview,cursor,Java,Android,Sqlite,Listview,Cursor,我已经用光标创建了一个数据库。我想在列表视图中显示它。这是我的活动文件: package com.ucas.course; import java.util.List; import org.w3c.dom.Comment; import android.app.Activity; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import and

我已经用光标创建了一个数据库。我想在列表视图中显示它。这是我的活动文件:

package com.ucas.course;

import java.util.List;

import org.w3c.dom.Comment;

import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;

public class SQLView extends ListActivity {

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_example);
        UCAS info = new UCAS(this);
        info.open();
        String values = info.getData();
        info.close();
        AString[] columns = new String[] {UCAS.KEY_UNIVERSITY};
        int[] to = new int[] { R.id.name_entry, R.id.number_entry };
        startManagingCursor(c);
        SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, R.layout.sqlview, c, columns, to);
        this.setListAdapter(mAdapter);

 }



}
目前除了一个游标错误“fillWindow()中的语句无效”外,没有其他错误,我不知道这是否与我的问题有关,但当我开始活动时,我只看到一个空白屏幕

public Cursor getData() {
    // TODO Auto-generated method stub
    String[] columns = new String[]{KEY_ROWID, KEY_UNIVERSITY, KEY_OFFER};
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);


    return c;
}

列表可以并且在您的情况下应该使用游标来备份其数据。您没有理由构建一个结果字符串来保存查询值。您可以将光标直接传递给适配器

public String getData() {
     String[] columns = new String[]{KEY_ROWID, KEY_UNIVERSITY, 
         KEY_COURSE, KEY_UCAS, KEY_SATISFACTION, KEY_EMPLOYED, 
         KEY_OFFER, KEY_OTHER};

     Cursor c = ourDatabase.query(DATABASE_TABLE, 
         columns, null, null, null, null, null);

     return c;

}

拥有光标后,使用SimpleCursorAdapter将其绑定到ListActivity。

函数有一些小变化

    public String getData() {
     String[] columns = new String[]{KEY_ROWID, KEY_UNIVERSITY, 
         KEY_COURSE, KEY_UCAS, KEY_SATISFACTION, KEY_EMPLOYED, 
         KEY_OFFER, KEY_OTHER};

     Cursor c = mDBHelper.getReadableDatabase.query(DATABASE_TABLE, 
         columns, null, null, null, null, null);

     return c;

}

您好,谢谢,这是有用的,但现在我又碰上了另一堵墙,我编辑了上面的文章,提供了更多信息,我的新脚本“列”和“到”中的ITME数量必须相等!另外,游标应该包含“_id”列(我假设这是您的KEY_ROWID列)。我已经将它们更改为这个字符串[]columns=新字符串[]{UCAS.KEY_ROWID,UCAS.KEY_UNIVERSITY,UCAS.KEY_OFFER};int[]to=newint[]{R.id.KEY\u ROWID,R.id.KEY\u UNIVERSITY,R.id.KEY\u OFFER};我想这就是你的意思,但我仍然得到错误,在你的活动的onDestroy方法中没有显示关闭游标或我如何关闭游标?抱歉,我对这个东西不熟悉((CursorAdapter)this.getListAdapter()).getCursor().close();这没有改变什么对不起。可能与我的XML有关