来自 SQLite 数据库的调用首选项 Activity
Call Preference from SQLite DB Activity
我正在开发一个字典应用程序。我有以下代码显示 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,但是卡在了“5)Saving/reading数据”。我试图将 SharedPreferences
放在 getHistoryWords
下,但出现错误 cannot resolve getBaseContext
。
public List<Bean> getHistoryWords() {
SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
我应该把代码放在哪里?
有一个最简单的方法。
首先,创建 YourAppName ,扩展 Application
将 Context
声明为静态并在 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"
在应用标签中,
现在,您可以像这样在每个需要的地方获取 Context,
YourApp.getAppContext()
希望对你有所帮助。
我正在开发一个字典应用程序。我有以下代码显示 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,但是卡在了“5)Saving/reading数据”。我试图将 SharedPreferences
放在 getHistoryWords
下,但出现错误 cannot resolve getBaseContext
。
public List<Bean> getHistoryWords() {
SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
我应该把代码放在哪里?
有一个最简单的方法。
首先,创建 YourAppName ,扩展 Application
将 Context
声明为静态并在 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
中声明 YourAppandroid:name="com.yourpackagename.app.YourApp"
在应用标签中,
现在,您可以像这样在每个需要的地方获取 Context,
YourApp.getAppContext()
希望对你有所帮助。