Android开发的新手......我一直在网上寻找答案,但我仍然发现自己陷入了困境,并希望有人可以帮助我。我绝对承认我是新手......但是想要学习。
我有一个已经填充的sqlite数据库,我将其包含在一个包中。我已将其复制到资产文件夹中。该数据库有4个表(以及其下的一些字段)。
我有一个带有listview的简单活动,我试图简单地在数据库中查询表名并让它们填充,但是我没有得到任何结果。
我的DataBaseAdapter代码基本上是这里的代码: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
我修改了我的数据库名称和路径。
我要调用此类的代码在这里:
ON EDIT :::
public Cursor fetchAllNotes() {
return myDbHelper.rawQuery("SELECT name FROM sqlite_master WHERE type='table'",
new String[]{});
}
private void fillData() {
Cursor c = fetchAllNotes();
startManagingCursor(c);
String[] from = new String[] {"name"};
int[] to = new int[] {R.id.listview};
SimpleCursorAdapter notes =
new SimpleCursorAdapter (this, R.layout.list_view, c, from, to);
setListAdapter(notes);
}
}
项目运行,它只是在ListView(在一个名为lists.xml的xml中)中没有产生结果,代码部分在这里:
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:text="No data"
style="@style/ButtonText"/>
任何帮助都会很棒,我确信我的sql电话很难... ...但我被卡住了。
答案 0 :(得分:0)
您的往返数组不正确。你的'from'字符串数组目前是空白的。这将是您要显示的列的名称。所以在你的情况下,它将是“名称”。你的'to'数组将是你将值映射到的视图的id ...而不是列表的id。您需要创建一个新的布局,并在其中显示TextField。在“到”字段中,您将提供此新文本字段的ID。然后在SimpleCursorAdapter中,您可以将这个新布局与'to'和'from'数组一起发送。
答案 1 :(得分:0)
试试这段代码:
private void getData() {
tb.open();
List<String> items = new ArrayList<String>();
Cursor c = tb.fetchallemployee();
c.moveToFirst();
ListAdapter adapter=new SimpleCursorAdapter(this,
R.layout.show_database, c,
new String[] {"date", "title"},
new int[] {R.id.toptext, R.id.bottomtext});
setListAdapter(adapter);
setListAdapter(entries);
tb.close();
}