我正在开发一个字典应用程序。我有以下代码显示20个最近的历史字。
public List<Bean> getHistoryWords() {
SQLiteDatabase db = initializer.getReadableDatabase();
String sql = "SELECT * FROM " + HISTORY_NAME +
" WHERE " + STATUS + " ORDER BY " + STATUS + " DESC LIMIT 20" ;
Cursor cursor = db.rawQuery(sql, null);
List<Bean> wordList = new ArrayList<Bean>();
while(cursor.moveToNext()) {
int id = cursor.getInt(0);
String english = cursor.getString(1);
String bangla = cursor.getString(2);
String status = cursor.getString(3);
wordList.add(new Bean(id, english, bangla, status));
}
cursor.close();
db.close();
return wordList;
}
我想为用户提供一个选项,可以将历史记录项的数量从LIMIT 20
更改为LIMIT 50
或LIMIT 100
到Preferences
。
我关注this tutorial,但我被困在&#34; 5)保存/阅读数据&#34;。我试图将SharedPreferences
放在getHistoryWords
下,但我收到错误cannot resolve getBaseContext
。
public List<Bean> getHistoryWords() {
SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
我应该把代码放在哪里?
答案 0 :(得分:1)
有一种最简单的方法。
首先,创建扩展Application
的YourAppName
将Context
声明为static并在Application的onCreate方法上初始化它,
public YourApp extends Application {
private static Context context;
public void onCreate() {
super.onCreate();
YourApp.context = getApplicationContext();
}
public static Context getAppContext() {
return YourApp.context;
}
}
在Manifest.xml中声明YourApp
应用程序代码中的 android:name="com.yourpackagename.app.YourApp"
,
现在,您可以获得上下文,您需要的每个地方,
YourApp.getAppContext()
我希望这会对你有所帮助。