我想从我的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对象。 对不起,这可能是一个简单的问题,请帮助
答案 0 :(得分:0)
有两个简单的选项,我认为最好的方法是使用CursorAdapter并将光标与您的查询一起传递,在这种情况下,listView将只加载显示的元素,并在滚动时从数据库加载dinamicaly。
或者您可以为自己执行查询并将对象存储在数组中以使用SimpleCursorAdapter进行显示。