Как отобразить содержимое базы Android? - PullRequest
0 голосов
/ 11 декабря 2011

Я вернулся с другим вопросом, касающимся баз данных 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();
    
  • И, наконец, 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 ]

1 голос
/ 15 декабря 2011

Сначала проверьте, создана ли ваша база данных, а затем проверьте, создана ли таблица или нет, с помощью командной строки.Если все в порядке, попробуйте напечатать курсор, чтобы проверить, получает он данные из БД или нет.для печати значений курсора используйте следующую логику ..

 *if(!cursor.isAfterLast())
    {   
        cursor.moveToFirst();
        do{  
           String entry = cursor.getString(cursor.getColumnIndex(KEY_ENTRY));
          Log.v("value:",entry);
          cursor.moveToNext();
          }while(!cursor.isAfterLast());*
0 голосов
/ 13 декабря 2011

Ваш код не имеет проблем, пожалуйста, проверьте в файле базы данных, есть ли данные, есть ли способ использовать браузер sqlite (или) пройти через это в командной строке {$ adb shell $ cd data / data / projectname / database/
проверьте, создан ли ваш файл базы данных, а затем перейдите к -> имени файла базы данных sqlite3, вы найдете приглашение sqlite - следовательно, вы можете просмотреть как .tables и выбрать * из имени таблицы}

вышеупомянутые шаги упомянуты в связи с новичками, если вы знаете это раньше, пожалуйста, игнорируйте

, чтобы исследовать файл базы данных.

пожалуйста, отметьте это https://stackoverflow.com/questions/2149438/tool-to-see-android-database-tables-and-data

...