2010-12-05 6 views
1

私のカーソルから値を取得する必要があります。値がこの形式である必要があります:Arraylistを取得しているAndroidの問題<double[]>カーソルから

 List<double[]> values = new ArrayList<double[]>(); 

私は私が 『長さ』にそれを変更したい「.add」それ誤りを行うときに問題があります。私はアプリがまったく動作するようにリストに入れておく必要があります。ここに私のコードがあります、それを行う方法はありますか?私は間違って何をしていますか?

cursor = managedQuery(Provider.CONTENT_URI, 
      proj, 
      null, 
      null, 
      null); 

      while (cursor.moveToNext()) { 
     double value; 
     column_value = cursor.getColumnIndex(CsvProvider.VALUE); 
     value = cursor.getDouble(column_value); 
     values.add(value); //this did not work 
     values.add(new double[] {value}); //this did work 
    } ; 

ありがとうマイク!

答えて

0

まず、エラーを言い換えてはいけません。エラーが発生した場合は、コピーして質問に貼り付けてください。

あなたの問題については:

あなたのcValuesリスト内のすべての単一のエントリは、[]をダブルにする必要がある、すなわち、二重のアレイのリストを持っています。代わりに、あなたは単なる二重を追加しています。それは動作しません。あなたのリストが間違って入れられたり、本当に配列のリストが必要な場合は、あなたのリストがどのように設定されているのかわかりませんが、すべてのエントリが1つのdoubleの配列を必要とすると仮定すると、 a new double[] { value }

サイドノート:このdo/whileの代わりにwhile (cursor.moveToNext()) { ... }を使うのはなぜですか?

+0

ありがとうマイク。それは実際にはエラーではありませんでしたが、Eclipseでの迅速な修正のほうが、赤い括弧で囲まれた行が悪いコードの下にあるときにはそうでした。私はdo/whileをクリーンアップし、moveToNextを使う方が良いと同意します。これは動作しますが、私はカーソルからそれを設定する必要があります:リスト values = new ArrayList (); values.add(新しいdouble [] {4.9,5.3,3.2,4.5,6.5,4.7,5.8,4.3,4,2.3、-0.5、-2.9,3.2,5.5,4.6,9.4,4.3,1.2,0,0.4 、4.5、3.4、4.5、4.3、4}); – Opy

+0

さて、二重の配列でリストに1つのエントリを入れたいのですか?まあ、その場合は、 'new double [cursor.getCount()]'でダブル配列を作成し、それをループの中に書き込んでください。 – EboMike

+0

これは私のために修正されました "...次に新しいdouble [] {value}"を追加する必要があります。ありがとう!私は一度それを試みたが、他のエラーがポップアップし続けた。私はちょうどあまりにも早すぎることをあきらめたと思う。 – Opy

関連する問題