2012-07-22 76 views
1

我想查詢我的sqlite數據庫中的所有行,然後將其傳遞給列表視圖以顯示在我的應用程序中。如何存儲取自sqlite數據庫的listview顯示對象?

下面是代碼(我有一個student.java實現):

StudentDAO.java: 

public void add(Student student) 
    { 
     db = helper.getWritableDatabase(); 
     db.execSQL("insert into t_student (sid, name, age) values (?,?,?)", new Object[] 
       { student.getId(), student.getName(), student.getAge()} 
       ); 
    } 

public Student findAll() 
    { 
     db = helper.getWritableDatabase(); 
     Cursor cursor = db.rawQuery("select sid, name, age from t_student", (String[]) new Object() 
       ); 

     if(cursor.moveToNext()) 
      return new Student(cursor.getInt(cursor.getColumnIndex("sid")), cursor.getString(cursor.getColumnIndex("name")), cursor.getShort(cursor.getColumnIndex("age"))); 
     return null; 
    } 


MultiList.java: 

public class MultiList extends ListActivity { 

    ListView lv; 
    SimpleAdapter sd; 

    StudentDAO dao = new StudentDAO(MultiList.this); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

Student Alex = new Student(); 
     chan.setId(1); 
     chan.setAge((short) 18); 
     chan.setName("Alex "); 
     dao.add(Alex); 

     Student Queena = new Student(); 
     chan2.setId(2); 
     chan2.setAge((short) 19); 
     chan2.setName("Queena"); 
     dao.add(Queena); 

     Student Tom = new Student(); 
     chan3.setId(3); 
     chan3.setAge((short) 20); 
     chan3.setName("Tom"); 
     dao.add(Tom); 

      dao.findAll();////how to store them??? 

正如你所看到的,現在,我插入後所有三個對象的學生到我的數據庫,我怎麼看他們,存儲它們?因爲我的findAll()方法返回一個學生對象。 很抱歉,這可能是一個簡單的問題,請大家幫忙

回答

0

有兩種簡單的方式,在我看來,最好的方法是使用一個CursorAdapter並通過光標與您的查詢,在這種情況下的ListView將加載僅表現元素和意志在滾動時從數據庫加載數據。

或者您可以爲自己執行查詢並將對象存儲在數組中以使用SimpleCursorAdapter顯示。

+0

我的數據庫將會非常小,大約有100個條目。 我試過使用ArrayList studentArrayList = new ArrayList (); 。你認爲這有意義嗎? – 2012-07-22 18:16:50

+0

不要忘記使用set ...由setListAdapter()設置。 如果您使用和CursorAdapter,則可以直接使用數據庫查詢進行設置。 – 2012-07-22 18:31:55

相關問題