「小さな」問題があります。「Flights」というテーブルを持つSQLiteDatabase
(「PLB」) があります。"Total_Flight_Time"
このテーブルには、時間を記憶する TIME 型という列がありますHH:MM format
。時間と分の合計を作りたいです。のようなものです01:20 + 01:50 = 03:10 (HH:MM)
が、私はそれを行う方法がわかりません。
ここで、stackoverflow でコードを見つけました: Function from DBAdapter:
public Cursor getTotalTime() throws SQLException {
return db.rawQuery("SELECT sum(strftime('H%:%M', Total_Flight_Time) - strftime('H%:%M', '00:00')), 'unixepoch' FROM Flights",null);
}
メイン アクティビティでの関数呼び出し (テキスト ビューで SUM の結果を表示する必要があります):
DBHelper.open();
TextView txt = (TextView)findViewById(R.id.textView22);
String total = DBHelper.getTotalTime().toString();
txt.setText(total);
しかし、画面には次のように表示されます。android.database.sqlite.SQLiteCursor@41aa42b8
問題を解決するには、関数と関数呼び出しをどのように行う必要がありますか? HH:MM を表示するにはどうすればよいですか? :)
解決しました!解決:
DBAdapter 関数:
public Cursor getTotalTime() throws SQLException {
return db.rawQuery("SELECT time(sum(strftime('%s', Total_Flight_Time) - strftime('%s','00:00:00')),'unixepoch') FROM Flights",null);
}
メイン アクティビティでの関数呼び出し:
TextView txt = (TextView)findViewById(R.id.textView22);
Cursor c = DBHelper.getTotalTime();
c.moveToFirst();
String[] names = c.getColumnNames(); // inspect this as it should have a length of 1
String total = c.getString(c.getColumnIndex(names[0]));
txt.setText(total);