Как я могу сделать для отправки даты на курсор? - PullRequest
2 голосов
/ 30 июня 2019

Я не могу получить дату с помощью курсора, я проверяю все возможности, но не могу найти решение.

Я все попробовал. Проблема в 4 строке, где я хочу получить KEY_DATE_TREATMENT

 public List<Treatment> getTreatmentsList(){
        List<Treatment> tList = new ArrayList<>();
        Cursor c = getTreatments();
        if (c.moveToFirst())
        {
            do {

                SimpleDateFormat dateFormatprev = new SimpleDateFormat("yyyy-MM-dd");
                Date d = new Date();
                try {
                    d = dateFormatprev.parse(c.getString(c.getColumnIndex(KEY_DATE_TREATMENT)));
                }
                catch (ParseException e){

                }

                Treatment data = new Treatment(c.getInt(c.getColumnIndex(KEY_ID_TREATMENT)),
                        c.getInt(c.getColumnIndex(KEY_IDPARCEL_TREATMENT)),
                        c.getInt(c.getColumnIndex(KEY_IDTREATMENTPRODUCT_TREATMENT)),
                        c.getInt(c.getColumnIndex(KEY_IDWEATHER_TREATMENT)),
                        c.getString(c.getString(c.getColumnIndex(KEY_DATE_TREATMENT)));

                tList.add(data);
            }
            while (c.moveToNext());
        }
        c.close();

    }

Ошибка, которая у меня сейчас есть:

getString (int) в Cursor нельзя применить к Java.lang.String

Ответы [ 2 ]

2 голосов
/ 01 июля 2019

Исправлено изменением: -

c.getString(c.getString(c.getColumnIndex(KEY_DATE_TREATMENT)));

Кому: -

c.getString(c.getColumnIndex(KEY_DATE_TREATMENT));

Вы пытаетесь использовать c.getString(), с String arg, а не int arg, когда вы указываете c.getString(c.getColumnIndex(KEY_DATE_TREATMENT)) в качестве аргумента.Аргумент return String ( данные, которые вы хотите получить ), а не int .

Ссылка говорит: -

getString

public abstract String getString (int columnIndex)

Параметры

columnIndex int:Начинающийся с нуля индекс целевого столбца.

c.getColumnIndex(KEY_DATE_TREATMENT) получает int , смещение столбца столбца, имя которого имеет значение KEY_DATE_TREATMENT и работает в методе getString (как и в других строках, использующих getInt).

0 голосов
/ 01 июля 2019

У вас есть дополнительный ненужный и неправильный вызов на getString():

c.getString(c.getString(c.getColumnIndex(KEY_DATE_TREATMENT)))

, измените на:

        Treatment data = new Treatment(c.getInt(c.getColumnIndex(KEY_ID_TREATMENT)),
                c.getInt(c.getColumnIndex(KEY_IDPARCEL_TREATMENT)),
                c.getInt(c.getColumnIndex(KEY_IDTREATMENTPRODUCT_TREATMENT)),
                c.getInt(c.getColumnIndex(KEY_IDWEATHER_TREATMENT)),
                c.getString(c.getColumnIndex(KEY_DATE_TREATMENT)));
...