来自 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 50LIMIT 100Preferences

我关注了this tutorial,但是卡在了“5)Saving/reading数据”。我试图将 SharedPreferences 放在 getHistoryWords 下,但出现错误 cannot resolve getBaseContext

public List<Bean> getHistoryWords() {
    SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getBaseContext());

我应该把代码放在哪里?

有一个最简单的方法。 首先,创建 YourAppName ,扩展 ApplicationContext 声明为静态并在 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()

希望对你有所帮助。