Как передать строку вместо строкового аргумента в android sqlite

Я создаю базу данных, в которой мне нужно показать данные предыдущего дня.

    Long test=  System.currentTimeMillis()-24*60*60;

    DateFormat dateFormattest= DateFormat.getDateInstance();
    String dateFilter= dateFormattest.format(test);
    Log.v("initial",  dateFilter);

   // String[] args={dateFilter.toString()};

    cursor=dba.query(Utils.Table_Name,new String[]{Utils.Id_Name,Utils.Food_Name,Utils.Calorie_Name,
        Utils.Date_Name},Utils.Date_Name+"=?",new String[]{dateFilter},null,null,Utils.Date_Name+ " DESC");
   // Log.v("sentvalue", args+"");

У меня есть правильное значение в datefilter в
logcatbut значение initial 8,2016
но в sentvalue logcat-Ljava.ленг.Строка;@501eb6

1 ответ

  1. Вы пытаетесь распечатать объект string array, поэтому logcat Ljava.lang.String;@501eb6.

    Попробуйте, как показано ниже, напечатать значение первого объекта массива.

    Log.v("sentvalue", args[0]);
    

    Попробуйте запросить как ниже.

    String[] projection = {utils.Id_Name,
                          Utils.Food_Name,
                          Utils.Calorie_Name,
                          Utils.Date_Name};
    
    String selection =  Utils.Date_Name + "< ?";
    String[] selectionArgs = new String[] { String.valueOf(System.currentTimeMillis()) };
    String orderBy = Utils.Date_Name+ " DESC";     
    
    Cursor cursor = db.query(
            Utils.Table_Name,                         // The table to query
            projection,                               // The columns to return
            selection,                                // The columns for the WHERE clause
            selectionArgs,                            // The values for the WHERE clause
            null,                                     // don't group the rows
            null,                                     // don't filter by row groups
            orderBy                                   // The sort order
            );