2010-12-02 9 views
0

Android上で現在SQLiteデータベースにあるすべての行を取得し、各行から個々の列を取得しようとしています。私は別の関数DataHelper.selectAll()を呼び出してすべてのデータを記録するために、データがデータベースに実際に入っていると思います。私が期待するデータは、EclipseのLogCatに正しく表示されます。重要なのであれば、私が基本的に使用しているDataHelper.javaプログラムはここにあります:http://www.screaming-penguin.com/node/7742。以下に関連するコードを掲載します。重要なものはdoPost()です。Androidカーソル付きデータベースから列を選択できません

// from inside onCreate of Main (which extends activity)... 
    Button buttonPost = (Button) findViewById(R.id.buttonPost); 
    buttonPost.setOnClickListener(new OnClickListener() { 
    // doesn't actually post to website yet 
    public void onClick(View v) { 
     Log.d(TAG, "In onclicklistener."); 
     ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
     NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 

     if (mWifi.isConnected()) { 
      Log.d(TAG, "Connected, calling doPost()!"); 
      if (doPost()) { 
         // ... 
       } 
      } 
    } 
    }); 

public boolean doPost() { 
    boolean outcome = false; 
    long ret = dh.insert(main.id++ + "," + "my test2" + "," + "5:4:2:3" + "," + -300 + "," + -300 + "," + -1 + "," + 
-70 + "," + 3 + "," + -3 + "," + main.device_id); 
    Log.d(TAG, "ret from static insert:" + ret); 

    Cursor cursor = this.dh.db.query(DataHelper.TABLE_NAME, 
     new String[] { "id", "rssi", "wap_id", "lat" }, 
     null, null, null, null, "id desc"); 
    Log.d(TAG, "Cursor column count: " + cursor.getColumnCount()); 
    if (cursor.moveToFirst()) { 
    do { 
     HttpPost post = new HttpPost(OUR_SERVER); 
     Log.d(TAG, "rssi index:" + cursor.getColumnIndex("rssi")); 
     Log.d(TAG, "the rssi: " + cursor.getInt(cursor.getColumnIndex("rssi"))); 
    } while (cursor.moveToNext()); 
    } 

    // release connection here? 
    cm.shutdown(); 

    if (cursor != null && !cursor.isClosed()) { 
     cursor.close(); 
    } 
return outcome; 
} 

は今、何これについて奇妙なのは、それが成功した(単なる文字列として)完全な行をプリントアウトし、私のLogCatであるので、私は、私はデータベースにアクセスすることができるよ知っています。

Cursor column count: 4 
id value: 6 
id index: 0 
rssi index:1 
the rssi: 0 
id value: 5 
id index: 0 
rssi index:1 
the rssi: 0 

私は、すべてのアクセスデータので、たくさんのオンラインの例で、途方に暮れて同じようだ:私は期待してRSSI値は私が得る代わりに、ログインしていません。私はOnClickListener内にいるという事実と関係がありますか?これを行うと、デバッガの警告は表示されません。

ありがとうございます!

答えて

0

Nevermind。私が使用していたDataHelper.javaクラスは、すべてを最初の列に挿入するだけです。これはかなり直感的でした。これは、コードをオンラインで見つけて、それが正しいことを前提にして得たものです。

これを修正するために、私は手動で完全なSQL文を書き、文をコンパイルして実行しました。

関連する問題