1

sqlite データベースからすべての行を照会し、リストビューに渡してアプリに表示したいと考えています。

ここにコードがあります(私は学生.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???

ご覧のとおり、3 人の生徒オブジェクトすべてをデータベースに挿入した後、それらをどのように読み取って保存するのでしょうか? 私の findAll() メソッドは学生オブジェクトを返すためです。簡単な質問かもしれませんが、教えてください

4

1 に答える 1

0

2 つの簡単なオプションがあります。私の見解では、CursorAdapter を使用してクエリでカーソルを渡すのが最善です。この場合、listView は表示された要素のみを読み込み、スクロール中にデータベースから動的に読み込みます。

または、SimpleCursorAdapter で表示するために、自分自身のクエリを実行し、オブジェクトを配列に格納することもできます。

于 2012-07-22T18:11:21.920 に答える