2014-02-17 4 views
0

В настоящее время я использую listview, заполненный SQLite db.Данные Listview из нескольких строк db

public Set<String> getData() { 
    Set<String> set = new HashSet<String>(); 

    String selectQuery = "select * from " + TABLE; 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 

    if (cursor.moveToFirst()) { 
     do { 
      set.add(cursor.getString(1)); 
     } while (cursor.moveToNext()); 
    } 

    cursor.close(); 
    db.close(); 

    return set; 
} 

тогда вид списка заполняется

private void populateListView() { 

    lv = (ListView) findViewById(R.id.listViewSetLocks); 

    DatabaseHandler db = new DatabaseHandler(getApplicationContext()); 
    Set<String> set = db.getData(); 

    List<String> list = new ArrayList<String>(set); 

    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
      this, android.R.layout.simple_list_item_1, list); 

    lv.setAdapter(arrayAdapter); 
    registerForContextMenu(lv); 

} 

этого все работает отлично. Ive решил немного изменить макет и использовать 2-строчный список, поэтому мне нужно получить доступ к данным в разных строках базы данных.

Какой лучший способ для меня достичь этого?

благодаря

ответ

0

Из того, что я думаю, что вы спрашиваете, возможно, попробуйте прочитать это: http://www.vogella.com/tutorials/AndroidListView/article.html Lars Vogel делает очень хорошие учебники

Вы будете делать лучше создания пользовательского адаптера путем расширения массива или Cursor адаптер ,

Может быть, посмотреть на: http://www.learn-android-easily.com/2013/06/listview-with-custom-adapter.html

0

Для этого вам придется создать custom listview. Пользовательский вид списка позволяет раздувать макет элемента пользовательского списка с помощью нескольких представлений/текстовых просмотров.

Для базы данных так просто нужен два запроса для выборки различных значений столбцов следующим образом:

String selectQueryCombined = "select "+ col1+","+col2+"from " + TABLE; 
Cursor cursor = db.rawQuery(selectQuery, null); 

//To Retrieve value : 

String val=c.getString(c.getColumnIndex(Col1)); 
String val1=c.getString(c.getColumnIndex(Col)); 

Теперь просто установить эти значения в TextViews вашего пользовательского элемента ListView.

Надеюсь, это поможет!

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