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内にいるという事実と関係がありますか?これを行うと、デバッガの警告は表示されません。
ありがとうございます!