2010-12-30 4 views
0

내가 안드로이드에 표준 SQL 쿼리를하고 있어요 :안드로이드 SQL 쿼리 문제

String selection = "SELECT phraseA, phraseB FROM TableXYZ"; 

     Cursor c1; 

     c1 = myDbHelper.myDataBase.rawQuery(selection,null); 

     c1.moveToNext(); 

     while(!c1.isLast()){ 

     toplist.add("Phrase: "+c1.getString(0)+" "+c1.getString(1); 

     c1.moveToNext(); 
     } 

     c1.close(); 

표는 매우 작고 반환 stirngs의 수는 Toplist는 ArrayList를 덜 (40)보다입니다. 그것은 ListView에 넣어집니다. 내 지식이 최고의 40y 문자열을 보여줘야한다. 이제는 문자열이 표시되지만 빈 ListView 필드의 다른로드가 나타납니다. 나는 어떻게 생각해. 내 반복이 잘못된 것일 수 있다고 생각했지만 실패한 부분은 찾을 수 없습니다.

+1

이 질문에 대답하지 않지만 ... 왜 SimpleCursorAdapter를 사용하지 않습니까? – Cristian

답변

0

항상 마지막 결과를 건너 뛰고 있지 않습니까? 나는 당신이 필요하다고 생각한다 : while(!c1.isAfterLast()) 마지막 항목을 건너 뛰지 말라. 당신이 ")"문자를 누락

toplist.add("Phrase: "+c1.getString(0)+" "+c1.getString(1); 

:

또한이 라인에 구문 오류가 있습니다.

질문과 관련하여 문제가 무엇인지 실제로 알 수있는 코드가 충분하지 않습니다. 코드의 다른 지점에서 ArrayList에 빈 값을 추가하지 않습니까? 여기에 표시되는 것은 배열 목록을 채우는 방식이며 ListView를 채우는 방식이 아닙니다. ListView 코드를 표시하십시오.

또한이 단계 후에 ArrayList에 포함 된 내용을 확인하기 위해 디버거를 연결하여 코드의 일부 또는 다른 부분에 오류가 있는지 확인하는 것이 매우 쉽습니다. 또는 ArrayList 크기를 LogCat에 인쇄하는 것조차이를 디버깅하는 데 도움이됩니다.

+0

답변이 발견되었다고 말하면서 당황 스럽습니다. 나는 내 테이블을 끔찍하게 지었다. 내가 선택한 두 개의 열이 같은 크기를 가지고 있더라도 다른 열은 훨씬 큰 크기를 가지므로 빈 공간이 그 이유입니다. 이렇게 간단한! 나는 이제 내 머리를 부끄러워 할 것이다. 그래도 도와 ​​줘서 고마워! –