2012-01-03 5 views
1

Я написал что-то вроде этого, чтобы получить данные из базы данных.Как показать данные из базы данных в виде списка?

public String getData() { 
    // TODO Auto-generated method stub 
    String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_SCORE}; 
    Cursor c = ourDatabase.query(
       DATABASE_TABLE, columns, null, null, null, null, null); 
    String result = ""; 

    int iRow = c.getColumnIndex(KEY_ROWID); 
    int iName = c.getColumnIndex(KEY_NAME); 
    int iHotness = c.getColumnIndex(KEY_SCORE); 

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){ 
     result = result + c.getString(iRow) + " " + c.getString(iName) + " " + c.getString(iHotness) + "\n"; 
    } 

    return result; 
} 

и я могу показать данные в текстовом виде. Но я хочу показать данные в listview, может кто-нибудь предложить мне или дать мне пример кода для отображения данных в listview. Я взял list.xml и поместил в него список. Я хочу получить данные из базы данных.

благодарит заранее.

+0

Используйте simpleadapter –

+0

http://www.vogella.de/articles/AndroidListView/article.html попробовать с этим –

ответ

1
public String[] getData() { 
    // TODO Auto-generated method stub 
    String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_SCORE}; 
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null); 
    //Initialise the result variable 
    String[] result = new String[c.getCount()]; 

    int iRow = c.getColumnIndex(KEY_ROWID); 
    int iName = c.getColumnIndex(KEY_NAME); 
    int iHotness = c.getColumnIndex(KEY_SCORE); 
    int counter = 0; 
    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){ 
     result[counter] = c.getString(iRow) + " " + c.getString(iName) + " " + c.getString(iHotness) + "\n"; 
     counter++; 
    } 

    return result; 
} 

Затем в ListView onCreate вы добавляете строку результата в адаптер.

setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, result)); 
+1

Вы забыли вернуть String [] вместо String – Dharmendra

+0

@Dharmendra отредактировал ответ, thx – Flexo

+0

он дает ошибку, поскольку «переменная должна содержать либо выражения измерения, либо инициализатор массива» ... ошибка в String [] result = new String []; – MADDY

1

Отображение данных в списке не так просто, как говорят getListView().setData(myData);

Во-первых, создать адаптер список, это класс, который принимает некоторые данные (обычно как ArrayList), и «дает» его в список в некотором смысле список может читать.

Взгляните на документы Разработчик: http://developer.android.com/reference/android/widget/ListAdapter.html

и некоторые учебные пособия:

+0

так как установить данные .the ссылки являются немного запутанным .can у дать какой-либо код для продемонстрируйте это. – MADDY

+0

Повесьте несколько минут, я отредактирую свой ответ –

+0

См. ответ Флексо, он должен работать сейчас! –

Смежные вопросы