2013-03-27 3 views
0

У меня возникла проблема с отображением элементов данных из базы данных sqlite с помощью ListView. Когда я пытаюсь увидеть данные после того, как кнопка мыши, она показывает:ListView не отображает элементы sqlite Android.

com.LocationReminder и задачи @ 4053afb0

Это странно.

Это мой readReminder.java

import java.util.ArrayList; 
import android.app.ListActivity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 

public class readReminder extends ListActivity { 
private DBReminder operasiDB; 
private ArrayList<Task> daftarTugas; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.read_task); 
    operasiDB = new DBReminder(this); 

    daftarTugas = operasiDB.viewAllTask(); 
    ArrayAdapter<Task> adapter = new ArrayAdapter<Task>(this, 
     android.R.layout.simple_list_item_1, daftarTugas); 

    setListAdapter(adapter); 
} 
} 

это мой код, чтобы показать все данные из базы данных

public ArrayList<Task> viewAllTask() { 
    openConn(); 
    ArrayList<Task> tugas = new ArrayList<Task>(); 
    Cursor curs = db.rawQuery("select * from " + TableName, null); 
    if (curs.moveToFirst()) { 
     do { 
      Task task = new Task(); 
      task.setId(Integer.parseInt(curs.getString(curs.getColumnIndex(ID)))); 
    task.setLatitude(Integer.parseInt(curs.getString(curs.getColumnIndex(LATITUDE))));    
task.setLongitude(Integer.parseInt(curs.getString(curs.getColumnIndex(LONGITUDE))); 
task.setRadius(Integer.parseInt(curs.getString(curs.getColumnIndex(RADIUS)))); 
task.setAlamat(curs.getString(curs.getColumnIndex(ALAMAT))); 
task.setKonteks(curs.getString(curs.getColumnIndex(KONTEKS_TUGAS))); 
tugas.add(task); 
     } while (curs.moveToNext()); 
    } 
    closeConn(); 
    return tugas; 
} 

В SQLite Manager Eclipse, данные появляются также с таблицей. Пожалуйста, помогите мне. Спасибо ...

+0

Я думаю, что база данных sqlite вернет данные в качестве объектов-курсоров. Вместо этого попробуйте с помощью cursoradapter. – vinoth

ответ

0

Вы должны создать свой собственный Adapter, расширив класс ArrayAdapter.

+0

Как я могу это сделать ?? должен ли я сделать другой класс только для адаптера? –

+0

Да, вам нужно создать другой класс и переопределить его метод getView –

0

Если вы хотите, чтобы показать несколько столбцов в вашей ListView использовать SimpleCursorAdapter

public Cursor viewAllTask() { 
//openConn(); open your database in the activity onCreate 

return db.rawQuery("select * from " + TableName, null); 

//closeConn(); // close your database in the activity onDestroy 
} 

Изменение private ArrayList<Task> daftarTugas; Для Cursor daftarTugas;

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.read_task); 
operasiDB = new DBReminder(this); 
operasiDB.open(); 

Cursor daftarTugas = operasiDB.viewAllTask(); 
String[] fromColumns = {DBReminder.RADIUS, 
         DBReminder.ALAMAT, 
         DBReminder.KEY_KONTEKS_TUGAS}; 
int[] toViews = {R.id.textview_radius, 
       R.id.textview_alamat, 
       R.id.textview_konteks_tugas}; 
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
          R.layout.listview_items, 
          daftarTugas, fromColumns, toViews, 0); 
     setListAdapter(adapter); 
} 

имя макета XML listview_items

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/textview_radius" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

<TextView 
    android:id="@+id/textview_alamat" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

<TextView 
    android:id="@+id/textview_konteks_tugas" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

</LinearLayout> 
+0

спасибо ... как его использовать ?? Можете ли вы дать мне пример –

+0

все еще нужна помощь? –

+0

да, пожалуйста, дайте мне пример SimpleCursorAdapter –

0

По CLAS ArrayAdaptor по умолчанию s ожидает, что предоставленный идентификатор ресурса ссылается на один TextView. Вам нужно его настроить.

простой и легкий способ использования simplecursoradoptor.

+0

любая хорошая ссылка, чтобы привести пример ?? –

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