ねえ、ここで問題が発生しました。
メソッドに渡された日付に基づいてデータベースから日付を取得しようとしていますが、値が返されます。
問題は、日付を受け取る変数を渡そうとすると、DBからデータを選択するメソッドが何も返さないことです。(そして、LogCatに日付変数を出力し、それで問題ありません。日付値は正しいです)が、このような文字列値( "1/01/1111")を渡すと、正しく返されます。
これは、値を取得してテキストを設定するアクティビティのメソッドです。
public void setBasicContent() {
date = (mMonth + 1) + "/" + mDay + "/" + mYear + " ";
hpdData = this.hpd.selectDuration(date);
mDateDisplay.setText(hpdData);
}
そして、これが日付パラメータに基づいてDBからデータを選択するselectDuration()メソッドです。
ああ、アクティビティで可変日付を渡すと、コードがif(cursor.moveToFirst())
スコープに到達しません。しかし、変数の値は通常の文字列とまったく同じであるため、理由はわかりません。
public String selectDuration(String date) {
String duration = "";
Integer value = 0;
String returnment = "";
Log.i(TAG, "date to select: " + date);
Cursor cursor = this.db.query(TABLE_NAME, new String[] { "duration" },
"date = ?", new String[] { date }, null, null, null);
if (cursor.moveToFirst()) {
do {
Log.i("SELECTDURATION", "inside cursor.moveToFirst()");
duration = cursor.getString(0);
value += Integer.parseInt(duration);
} while (cursor.moveToNext());
returnment = Integer.toString(value);
}
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
Log.i(TAG, "valor do returnment: " + returnment);
return returnment;
}