2010-12-30 18 views
0

私は、Androidで標準SQLクエリをやってる:Androidの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の数は40村写真はArrayListの場合よりも小さいです。それはListViewに入れられます。私の知る限り、これは私に40文字列を表示するはずです。さて、何が起こるかは、文字列が表示されますが、空のListViewフィールドの別の読み込みが表示されます。私はどのように考えている。私の反復は間違っているかもしれないと思ったが、私はそれで間違いを見つけることはできない。

+1

これはあなたの質問に答えませんが...なぜSimpleCursorAdapterを使用していませんか? – Cristian

答えて

0

いつも最後の結果をスキップしていませんか?私はあなたが必要と思う:while(!c1.isAfterLast())最後の項目をスキップしないでください。あなたは ")" の文字が欠落している

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

はまた、このラインに構文エラーがあります。

あなたの質問には、問題の内容を実際に確認するのに十分なコードが表示されていません。あなたはあなたのコードの他のいくつかの点でArrayListに空の値を追加していませんか?ここに表示されているのは、どのように配列リストを作成するのかであり、ListViewをどのように配置するのかはわかりません。 ListViewコードを表示します。

また、デバッガをアタッチして、このステップの後にArrayListに含まれる内容を確認し、エラーがコードのこの部分にあるかどうかを確認することもかなり簡単です。あるいは、ArrayListのサイズをLogCatに印刷しても、これをデバッグするのに役立ちます。

+0

答えが見つかると私は恥ずかしいです。私はテーブルをひどく築いた。私が選んだ2つの列は同じサイズを持っていますが、他の列はサイズがはるかに大きいので、なぜ空白なのでしょうか。とても簡単!私は今、私の頭を恥ずべきでぶら下げます。あなたの助けをありがとう! –