2012-04-20 41 views
1

在一個表上我不喜歡這樣寫道:如何從2個表查詢一個(簡單)的CursorAdapter

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 請幫忙!

回答

0

你絕對需要一個_id列在結果光標在一個(簡單)的CursorAdapter

+0

好的,但我該怎麼做呢?我在結果字符串數組中指定了它,但它似乎與遊標無關 – AlexAndro 2012-04-20 15:07:05

+0

在您的String []中,有一個名爲_id的元素。它必須出現在遊標中。因此,它必須存在於SELECT中。 – njzk2 2012-04-20 15:11:57