Java 请求android cursorindexoutofbounds索引0
我试图从fRate等于(货币符号,USD,JPY等)的表中返回一行(每个表一行),然后将该行中的列转换为浮点。每当spinner2被设置为默认选择(即AUD,我数据库中的第一个表)之外的某个值时,我就会得到错误Java 请求android cursorindexoutofbounds索引0,java,android,sqlite,android-cursor,Java,Android,Sqlite,Android Cursor,我试图从fRate等于(货币符号,USD,JPY等)的表中返回一行(每个表一行),然后将该行中的列转换为浮点。每当spinner2被设置为默认选择(即AUD,我数据库中的第一个表)之外的某个值时,我就会得到错误 Button convert = (Button) rootView.findViewById(R.id.button1); convert.setOnClickListener(new OnClickListener() { @Override
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));
除了
AUD
之外的表都是空的,因此您会收到一个错误消息,告诉您找不到任何项目。如果希望这些表工作,您需要用数据填充这些表。您确定光标包含数据库返回的信息吗?哇,您是对的……其他所有表都是空的。填充表格,一切都按预期进行。