1

users(_id,name) というテーブルを持つデータベースがあります。次の方法を使用して、名前の昇順ですべてのレコードを取得しています

public Cursor getAllNames() {
    return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME },
            null, null, null, KEY_NAME+" ASC", null);
}

今、次のようにリストアクティビティでカーソルを取得しています

DBAdapter db= new DBAdapter(this);

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.lview);
    ListView l=(ListView) findViewById(R.id.listView1);
    db.open();
    Cursor c=db.getAllNames();
    db.close();
}

Simple Cursor Adapter を使用して名前を反復処理し、リスト ビューに割り当てようとしています。しかし、それは減価償却されているので、同じことを達成する方法は?

4

2 に答える 2

3

SimpleCursorAdapter は廃止されていません。そのコンストラクタの 1 つに. Cursor データを ListView にアタッチする場合は、最も簡単な方法であるため、SimpleCursorAdapter オプションを強くお勧めします。新しい SimpleCursorAdapter は v4 サポート ライブラリで提供されると思います。

于 2012-10-27T14:53:15.127 に答える
2

BaseAdapter を拡張し、項目の ArrayList を保持するカスタム Adapter を作成できます。getAllNames() を呼び出してすべてのアイテムを Cursor に配置したら、Cursor を反復処理し、それらすべてのアイテムを CustomAdapter から ArrayList に配置します。次に、CustomAdapter を ListView アダプターとして設定するだけです。

于 2012-10-27T14:50:37.680 に答える