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有关