我回来了关于Android数据库的另一个问题。
我将一个简单的字符串存储到我的android数据库中,然后希望将所有条目显示为列表。但是,列表在我的模拟器(或我的实际设备)上没有显示任何内容,LogCat也没有显示(在将条目保存到数据库或调用它们时)。
下面是我的代码
保存条目功能:
public long createEntry(String entry){
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_ENTRY, entry);
return db.insert(DATABASE_TABLE, null, initialValues);
}
获取条目功能:
public Cursor fetchAllEntries(){
return db.query(DATABASE_TABLE,new String [] {KEY_ROW_ID, KEY_ENTRY}, null, null, null, null, null);
}
列表活动:
entryList = (ListView)findViewById(R.id.recordsList);
Cursor c = dbAdapter.fetchAllEntries();
if(c!=null){
startManagingCursor(c);
String [] from = new String [] {PirelliDbAdapter.KEY_ENTRY};
int [] to = new int [] {R.id.text1};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.entryrow, c, from, to);
entryList.setAdapter(adapter);
}
dbAdapter.close();
最后是List Activity的XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/recordsList"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<TextView
android:id="@+id/textViewList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
非常感谢您花时间仔细研究并帮助我。我真的很难过,不知道从哪里去......
答案 0 :(得分:1)
首先,检查是否已创建数据库,然后通过命令行检查是否创建了表。如果所有东西都没问题,那么尝试打印光标以检查它是否从db检索数据。用于打印游标值使用以下逻辑..
*if(!cursor.isAfterLast())
{
cursor.moveToFirst();
do{
String entry = cursor.getString(cursor.getColumnIndex(KEY_ENTRY));
Log.v("value:",entry);
cursor.moveToNext();
}while(!cursor.isAfterLast());*
答案 1 :(得分:0)
您的代码没有问题,请您在数据库文件中检查天气数据是否有一种方法是使用sqlite浏览器(或)在命令提示符下执行此操作
{$ adb shell $ cd data / data / projectname / databases /
检查您的db文件是否已创建,然后转到 - &gt;
sqlite3数据库文件名你会找到sqlite提示符 - 因此你可以探索.tables并从表名中选择*}
如果您之前知道这一点,则会提到上述步骤,请忽略
探索db文件。
请查看此https://stackoverflow.com/questions/2149438/tool-to-see-android-database-tables-and-data