2012-04-20 5 views
1

2 개 테이블에서 조회하는 방법은 다음과 같이 그것을 할하나의 테이블에 (단순) CursorAdapter

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); 

을하지만 지금은 추가 필요 다른 테이블에서 colum을 가격으로 가져오고 커서를 가져올 수 없습니다. 아래 코드와 다른 많은 코드를 사용해 보았습니다.

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

당신은 절대적으로 내 대답을 참조하십시오 A (단순) CursorAdapter

+0

좋아, 어떻게 할 수 있습니까? 결과 문자열 배열에 지정했지만 커서와 아무 관계가 없습니다. – AlexAndro

+0

String []에는 _id라는 요소가 있습니다. 커서에 커서가 있어야합니다. 따라서 SELECT에 있어야합니다. – njzk2

관련 문제