我的計劃是想檢查的選項表,如果它已經被設置(插入)的選項(如音量,振動)的。基本上,如果沒有設置選項,表格中的第一列爲0.如果第一行爲空,則切換到默認選項,否則切換到選項集。我環繞我的選擇檢查者使用嘗試捕捉一個收到此錯誤:所以我不知道如果我的代碼是對我的需要的Android - 光標索引越界異常
CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0.
我仍然福利局這個SQL的東西。
這是在OnCreate中(我的選項檢查):
options = new DBFunctions(this);
try{
String row = "0".toString();
long l = Long.parseLong(row);
options.open();
String retId = options.getId(l);
int id = Integer.parseInt(retId);
options.close();
//codes for setting the options if/if no data in option table exists will be put here
}catch(Exception e){
String error = e.toString();
tv.setText(error);
}
這是我在我的DBFunctions的getId()。 Java的:
public String getId(long l) {
String[] columns = new String[]{"id", "volume", "vibrate", "theme"};
Cursor c = db.query(table, columns, "id=" + l, null, null, null, null);
if(c !=null){
c.moveToFirst();
String id = c.getString(1);
return id;
}
return null;
}
`
感謝我的其他問題,檢查了.. :)我已經嘗試過的顯示值創建一個按鈕,它顯示所有我輸入的數據,這意味着我的插入代碼是正確的。然後我嘗試了我的值檢查器(我的代碼如上),它仍然顯示錯誤。我也嘗試將我正在查找的行(之前爲0)更改爲1,仍然顯示錯誤.. – 2012-04-08 17:51:33
@PhilipSy檢查您的數據並在數據庫中放入一個ID,然後使用該ID進行查詢。問題是,我不明白你想做什麼:用戶在數據庫中插入設置(只有一個,很多等?!?),但如果第一行是空的(?!?)切換到默認值? !? – Luksprog 2012-04-08 17:59:51
「我不明白你的問題的第一部分是插入/未插入數據庫並切換到默認值,因此我可以說如何做你想做的事情。」 - 我的意思是,如果您第一次使用該應用程序,它將設置默認選項(振動開啓,音量開啓等)。如果您設置了選項,它會檢查您是否已經設置過。如果它檢測到選項表有一個值,它只會更新您的選項,否則如果沒有值,它會插入。基本上,我的選擇表應包括1個排.. – 2012-04-08 18:00:13