1

単一のテーブルで、次のようにします。

public static String[] FROM_Benzinarii_onList = {DBConstants.Denumire_Benzinarie, DBConstants.Adresa, DBConstants.Distance, _ID};

public Cursor getStations_List(){
        db = helper.getReadableDatabase();
        return db.query(DBConstants.TABELA_BENZINARII, FROM_Benzinarii_onList, null, null, null, null, null);

次に、アダプターを作成します。

int[] values = {R.id.tv_benzinarie,R.id.tv_adresa,R.id.tv_dist}
Cursor cursor = getStations_List();
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(getBaseContext(), R.layout.item_list, cursor,FROM_Benzinarii_onList, values);
     setListAdapter(adapter);

しかし、別のテーブルから価格を含む追加の列が必要になり、カーソルを取得できません。以下のコードと他の多くのコードを試しました。

public static String[] FROM_Benzinarii_onList = {DBConstants.Denumire_Benzinarie, DBConstants.Adresa, DBConstants.Distance, DBConstants.Pret, _ID};

public Cursor getStations_List(){
        db = helper.getReadableDatabase();
        String sql = " select " + DBConstants.TABELA_BENZINARII + "." + DBConstants.Denumire_Benzinarie + "," + DBConstants.TABELA_BENZINARII + "." + DBConstants.Adresa 
                + "," + DBConstants.TABELA_BENZINARII + "." + DBConstants.Distance + "," + DBConstants.TABELA_PRETURI + "." + DBConstants.Pret 
                + " from " + DBConstants.TABELA_PRETURI + "," + DBConstants.TABELA_BENZINARII
                + " where " + DBConstants.TABELA_BENZINARII + "." + DBConstants.ID_Benzinarie + " = " + DBConstants.TABELA_PRETURI + "." + DBConstants.ID_Benz;
        return db.rawQuery(sql, null);
    }

次に同じようにSimpleAdapterを構築します(正しいかどうかわかりません!?)

int[] values = {R.id.tv_benzinarie,R.id.tv_adresa,R.id.tv_dist,R.id.tv_pret};

Cursor cursor = getStations_List();

SimpleCursorAdapter adapter = new SimpleCursorAdapter(getBaseContext(), R.layout.item_list, cursor,FROM_Benzinarii_onList, values);
        setListAdapter(adapter);

私は得る:

 Caused by: java.lang.IllegalArgumentException: column '_id' does not exist

新しいカーソルが関係しているかどうかはわかりませんが、ここでFROM_Benzinarii_onListは使用できませんでしdb.queryた 助けてください!

4

2 に答える 2

0

(Simple)CursorAdapter で使用するには、結果の Cursor に _id 列が絶対に必要です。

于 2012-04-20T15:05:40.217 に答える
0

私の回答を参照してくださいAndroid column _id does not exist 問題

私の答えのaliasようなものを使ってみてください。select oid as _id...

于 2012-04-20T15:12:48.213 に答える