【问题标题】:How can I do for send date to cursor?如何将日期发送到光标?
【发布时间】:2019-07-01 09:50:24
【问题描述】:

我无法用光标获取日期,我测试了所有可能性,但找不到解决方案。

我都试过了。 问题是我想得到KEY_DATE_TREATMENT的第4行

 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();

    }

我目前遇到的错误是:

Cursor 中的getString(int) 不能应用于Java.lang.String

【问题讨论】:

标签: java android date android-cursor


【解决方案1】:

通过更改修复:-

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

到:-

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

当您将c.getString(c.getColumnIndex(KEY_DATE_TREATMENT)) 作为 arg 时,您尝试使用带有 String arg 而非 int arg 的 c.getString()。 arg 返回 String您想要获取的数据)而不是 int

链接说:-

getString

public abstract String getString (int columnIndex)

参数

columnIndex int:目标列的从零开始的索引。

c.getColumnIndex(KEY_DATE_TREATMENT) 得到一个 int,即 name 值为 KEY_DATE_TREATMENT 的列的列偏移量,并在 中工作>getString 方法(与其他使用 getInt 的行一样)。

【讨论】:

    【解决方案2】:

    你对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)));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      • 1970-01-01
      • 2012-04-03
      相关资源
      最近更新 更多