如何存储从sqlite数据库中获取的对象以进行列表视图显示?

时间:2012-07-22 17:59:47

标签: android 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()方法返回一个student对象。 对不起,这可能是一个简单的问题,请帮助

1 个答案:

答案 0 :(得分:0)

有两个简单的选项,我认为最好的方法是使用CursorAdapter并将光标与您的查询一起传递,在这种情况下,listView将只加载显示的元素,并在滚动时从数据库加载dinamicaly。

或者您可以为自己执行查询并将对象存储在数组中以使用SimpleCursorAdapter进行显示。