如何显示Android数据库内容?

时间:2011-12-11 15:59:36

标签: android database sqlite list listview

我回来了关于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>
    

非常感谢您花时间仔细研究并帮助我。我真的很难过,不知道从哪里去......

2 个答案:

答案 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