2011-01-07 75 views
1

我有一個簡單的示例遊戲,有一個菜單,按鈕到各級。我想要的只有1級是「解鎖」或可點擊的,用戶可以將級別1解鎖1.因此,我想過使用首選項併爲每個級別設置一個布爾屬性,但我也想學習SQL和所以,將其實施到遊戲中。現在,我可以添加值到數據庫中,但他們讀回來的時候並將它們與字符串它沒有做任何事情:Android的SQLite讀取和比較問題

public String getValue(Cursor cursor) { 
    String id = new String(); 
    while (cursor.moveToNext()) { 
     id = cursor.getString(0); 
    } 
    return id; 
} 

然後我用string.toString()等於(「東西」)進行比較;有沒有更好的方式去做我想做的事情?爲什麼不比較?

+1

什麼是'string.toString()。equals(「something」)''。什麼是'串'?你在哪裏使用它?它回來了什麼?該函數返回的'id'的值是多少?你期望它「做」什麼? – Falmarri

+0

字符串是一個字符串對象,並且在一些搜索期間,很多人都說過使用toString()。equals(「」); – semajhan

回答

2
  1. 爲什麼不直接儲存他們解鎖的最後一個等級,而不是每個等級?如果他們解鎖3級並不意味着他們也有1級和2級解鎖?或者我誤解了?
  2. 你意識到string.toString()沒有做任何事嗎?它已經是一個字符串。
  3. 您正在遍歷整個遊標並僅返回最後一個結果。你可以跳到最後一個結果,或者更好的是隻選擇表格中的最後一行。你的代碼效率極低。
  4. 顯示更多圍繞調用.equals(「某事」)的代碼,您可能在那裏遇到問題。

它爲什麼不比較?

您是否嘗試過調試代碼或至少打印出字符串的值以確保它包含您認爲它包含的值?我很確定在實現String.equals()時沒有錯誤,所以我會說你正在比較的字符串不包含你認爲它所做的事情。

+0

1.同意,2:正如我的想法,但我是按照人們發佈的所有示例代碼進行的,3.還有更多的結果,但我只是簡化了並取出了一切不需要的東西,4.會的。 – semajhan

+0

關於#3,整個for循環是不需要的,並且使你的代碼效率低下。 –

+0

我不確定我是否理解。幾乎我經歷過的每個例子都是這樣實現的。 – semajhan