Просто заполните имена таблиц базы данных в Android ListView - PullRequest
3 голосов
/ 19 февраля 2012

Очень плохо знаком с разработкой для Android ... Я искал в Интернете ответы, но все еще застрял в надежде, что кто-нибудь может мне помочь. Я абсолютно признаю, что я новичок ... но пытаюсь учиться.

У меня уже есть заполненная база данных sqlite, которую я включаю в пакет. Я скопировал это в папку активов. База данных имеет 4 таблицы (и несколько полей под ними). ​​

У меня есть простое действие со списком, которое я пытаюсь просто запросить в базе данных для имен таблиц и заполнить их, однако я не получаю результатов.

мой код DataBaseAdapter по сути код отсюда: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

Я изменил имя и путь к базе данных. * * 1010

Мой код класса для вызова здесь:

В РЕДАКЦИИ :::

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 (который находится в xml с именем lists.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 ... но я застрял.

Ответы [ 2 ]

0 голосов
/ 23 октября 2012

Попробуйте этот код:

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(); 
        }
0 голосов
/ 19 февраля 2012

Ваши массивы в и из неверны. Ваш массив строк 'from' в настоящее время пуст. Это будет имя столбца, который вы пытаетесь отобразить. Так что в вашем случае это будет «имя». Ваш массив 'to' будет идентификатором представления, которому вы назначаете значение, а не идентификатором списка. Вам нужно будет создать новый макет с TextField в нем для отображения. В поле «to» вы дадите идентификатор этого нового текстового поля. Затем в SimpleCursorAdapter вы можете отправить этот новый макет вместе с массивами «to» и «from».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...