2017-03-10 76 views
0

我使用此代碼來限制我的字典應用程序中的歷史記錄數量。 historyNum默認爲50個項目。如何設置Unlimited SQL rawQuery?

SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MyApp.getAppContext()); 
     String historyNum = SP.getString("history","50"); 

     String sql = "SELECT * FROM " + HISTORY_NAME + 
       " WHERE " + STATUS + " ORDER BY " + STATUS + " DESC LIMIT " + historyNum ; 

我想添加一個新的選項,無限項目,但我不知道應該在historyNum投入什麼號碼。

我明白我可以簡單地通過取消該限制:

String sql = "SELECT * FROM " + HISTORY_NAME + 
       " WHERE " + STATUS + " ORDER BY " + STATUS + " DESC " ; 

然而,historyNumPreferenceManager下成立,由此用戶可以選擇他們想要多少歷史資料保存。將我的代碼更改爲以上將使我的PreferenceManager無法正常工作。

+0

我猜你的意思是取消該限制,而不是'unlimited'。如果是這樣,那就刪除那個'LIMIT'部分。 – Enzokie

+0

請檢查我編輯的問題。因爲PreferenceManager,我不能簡單地刪除'LIMIT'。 – user2872856

+1

如果負數是負數,則使用負數,否則它是無限的,但如果它是正數,那麼它具有特定的限制,但您將使用'getInt()'代替。 – Enzokie

回答

1

使用負數,而不是像-1,如果它是負值,那麼它是無限的,但如果它是一個正數,那麼它有一個特定的限制,但您將使用getInt()來代替。

0

在PreferenceManager中存儲一個新值,就像布爾值與「unlimitedHistory」一樣。

然後在你的代碼

boolean useUnlimitedHistory = SP.getString("unlimitedHistory", false); 
String sql = ""; 
if (useUnlimitedHistory) { 
    sql = "SELECT * FROM " + HISTORY_NAME + 
       " WHERE " + STATUS + " ORDER BY " + STATUS + " DESC " ; 
} else { 
    sql = "SELECT * FROM " + HISTORY_NAME + 
       " WHERE " + STATUS + " ORDER BY " + STATUS + " DESC LIMIT " + historyNum ; 
}