2017-02-10 10 views
-1

Я календарные и вид текста на классе, Ive отформатированного календарь на onSelectedDayChange к yyyymmdd (which is the format of my datestamp database names)Календаря onSelectedDayChange и SQLite сумма

Как я могу принести данные о конкретной выбранной дате? Как если бы я выбрал январь 01,2017 в представлении календаря, то он будет извлекать данные из этой таблицы?

Вот мои коды для извлечения суммы столбца Fat только на текущий день,

Это в моем классе 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 ant - если я нажму любую дату в календарном представлении, она будет извлекаться из db и отображать данные, связанные с этой датой.

----- Изменить дополнительные коды ------

Это мой дб вспомогательный класс. Как я могу отформатировать его для чтения значения 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

Я сохранить значение timeInMillis календаря TimeOfDay с станд часа, минуты, секунды и Миллисек, чтобы изолировать его в день, в основном я поставил его в 4 утра или что-то. то я могу сделать простое сравнение этого значения.

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

ИЛИ

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

До тех пор, как вы установите часы, минуты, секунды и миллисекунды это работает.

+0

Как я могу получить сумму (жир) с даты, когда tablename = завтрак.table и columnName = Fat? ** // дата = это значение onselectedDay календарного зрения // ** Строка запроса = «SELECT SUM (Fat) FROM» + дата + idont знаю, где я положу мое имя таблицы и имя столбца .. –

+0

Bye way sir, ive отредактировал мое сообщение, я добавил свой помощник db, я просто думаю, что мне нужно отформатировать его, чтобы получить значение ** setOnDateChangeListener ** Пожалуйста, помогите мне –

+0

Не уверен, что вы просите. Похоже, вам нужно запросить CRUK mysql для Google, чтобы получить общее представление о том, как работать с базами данных в Android. 'SELECT rows_you_want FROM table_rows_are_located WHERE some_conditional' В моем примере я использовал' SELECT * FROM TABLE', поэтому в основном он вытаскивает меня из таблицы. Если вы хотите, чтобы конкретная дата просмотрела пример предложения WHERE. «day» - это строка в таблице, которая содержит значение Long для timeInMillis, которое задается из 'Calendar.getInstance(). getTimeInMillis()'. –