2012-07-22 90 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

相关问题