2016-12-13 7 views
0

Я разрабатываю приложение для словарей. У меня есть следующий код, который показывает 20 самых последних слов истории.Предпочтение вызова из SQLite DB Activity

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» Сохранение/чтение данных ». Я попытался поставить SharedPreferences под getHistoryWords, но я получил ошибку cannot resolve getBaseContext.

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

Куда я должен поместить код?

+0

Создайте отдельный класс для сохранения и получения данных из общего назначения –

ответ

1

Простейший способ для этого. Во-первых, создать YourAppName, который расширяет Application Объявляет Context как статические и инициализировать его на OnCreate метод Application «ы,

public YourApp extends Application { 

    private static Context context; 

    public void onCreate() { 
     super.onCreate(); 
     YourApp.context = getApplicationContext(); 
    } 

    public static Context getAppContext() {  
     return YourApp.context; 
    } 
} 

объявить YourApp в manifest.xml

android:name="com.yourpackagename.app.YourApp" в заявке тега,

Теперь вы можете получить контекст, где бы вы ни находились,

YourApp.getAppContext() 

Надеюсь, это поможет вам.

+0

Спасибо. Это решило мою проблему. – user2872856