2017-02-10 52 views
-1

我已經日曆視圖和上一類文本視圖,我已經格式化爲yyyymmdd (which is the format of my datestamp database names)日曆onSelectedDayChange和SQLite和

onSelectedDayChange日曆我怎樣才能獲取特別選定日期的數據?就像我在日曆視圖中選擇01,2017年1月,那麼它會從該表中獲取數據?

這裏是我的代碼來獲取列發的總和僅在當天,

這是我的MainActivity類別

public Integer totalFat() 
    { 
     repo repo = new repo(this); 

     double i = repo.totalFatrepo(); 

     Textbreakfast.setText(""+i); 

     return null; 
    } 

這是我的回購類

public double totalFatrepo(){ 

     SQLiteDatabase db = dbHelper.getWritableDatabase(); 

     String query = "SELECT SUM(Fat) FROM " + breakfast.TABLE; 

     Cursor c = db.rawQuery(query, null); 

     //Add in the movetofirst etc here? see SO 
     c.moveToFirst(); 
     double i=c.getDouble(0); 

     return i; 

    } 

什麼iw螞蟻是如果我點擊日曆視圖上的任何日期,它會從數據庫中獲取並顯示與該日期相關的數據。

-----編輯額外的代碼------

這是我的分貝的輔助類。我如何格式化它以讀取setOnDateChangeListener值?

public static String getDateTime() { 
     SimpleDateFormat dateFormat = new SimpleDateFormat(
       "yyyyMMdd", Locale.getDefault()); 
     Date date = new Date(); 
     return dateFormat.format(date); 
    } 

    // Database Name 
    private static final String DATABASE_NAME = getDateTime(); 

回答

0

我節省TIMEOFDAY日曆timeInMillis值有性病時,分,秒,毫秒把它隔離到這一天,基本上我把它設置爲凌晨4點什麼的。那麼我可以對這個值做一個簡單的比較。

selectQuery = "SELECT * FROM TABLE WHERE day >= " + thisDate + " AND day < " + thatDate; 

OR

selectQuery = "SELECT * FROM TABLE WHERE day = " + thisDate 

只要你設定的小時,分​​鍾,秒和毫秒它的工作原理。

+0

如何從tablename = breakfast.table和columnName = Fat的日期得到總和(胖子)? ** //日期=是onselectedDay的「選擇從SUM(FAT)」日曆視圖// ** 查詢字符串=價值+日期+ idont知道我將會把我的表名和列名.. –

+0

再見,先生,我編輯我的帖子,我添加了我的數據庫幫手,我只是想我需要格式化它以獲取** setOnDateChangeListener的值**請幫助我 –

+0

不知道你在問什麼。這聽起來像你需要谷歌MySQL的CRUD查詢來了解如何在Android中使用數據庫的粗略想法。 'SELECT rows_you_want FROM table_rows_are_located WHERE some_conditional'在我的例子中,我使用了'SELECT * FROM TABLE',所以基本上它把我從表中拉出來。如果你想要一個特定的日期看看WHERE子句的例子。 'day'是表格中的一行,它包含從Calendar.getInstance()。getTimeInMillis()'提供的timeInMillis的Long值。 –