【问题标题】:android cursorindexoutofbounds index 0 requestedandroid cursorindexoutofbounds 索引 0 请求
【发布时间】:2014-08-22 08:49:41
【问题描述】:

我试图从 fRate 等于(货币符号、美元、日元等)的表中返回一行(每个表一个),然后将该行中的列转换为浮点数。每当 spinner2 设置为默认选择(即 AUD,我的数据库中的第一个表)之外的某个值时,我都会收到错误消息。

    Button convert = (Button) rootView.findViewById(R.id.button1);
    convert.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            context = getActivity().getApplicationContext();
            DataBaseHelper dbHelper = new DataBaseHelper(context);
            try {
                dbHelper.createDataBase();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            dbHelper.openDataBase();
            db = dbHelper.getWritableDatabase();

            String lRate = spinner1.getSelectedItem().toString();
            String fRate = spinner2.getSelectedItem().toString();       
            Cursor c = db.rawQuery("SELECT * FROM "+fRate+" ", null);
            c.moveToNext();
            Float cfRate = c.getFloat(c.getColumnIndexOrThrow(lRate));
                c.close(); 



            answer.setText(String.valueOf((Float.parseFloat(amount.getText().toString()) * cfRate)));
            inputManager.hideSoftInputFromWindow(getView().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
            db.close();
        }
    });

我一直在这一行收到错误:

Float cfRate = c.getFloat(c.getColumnIndexOrThrow(lRate));

【问题讨论】:

  • 你确定游标有数据库返回的信息吗?

标签: java android sqlite android-cursor


【解决方案1】:

AUD 以外的表是空的,因此您会收到一条错误消息,告诉您找不到任何项目。如果您希望它们正常工作,您需要用数据填充这些表。

【讨论】:

  • 哇,你是对的......其他所有表都确实为空。填充表格,一切都按预期工作。
猜你喜欢
  • 1970-01-01
  • 2013-01-10
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 2016-02-09
  • 2012-05-01
相关资源
最近更新 更多