Вы должны всегда использовать Utility Classes
для выполнения таких задач, как сохранение данных (общие настройки, база данных, сериализация и т. Д.).
Здесь я предлагаю вам основные шаблона:
GenericUtility.class:
package com.your.packagename;
import android.content.Context;
import android.content.SharedPreferences;
public class GenericUtility {
public static int getIntFromSharedPrefsForKey(String key, Context context)
{
int selectedValue = 0;
SharedPreferences prefs = context.getSharedPreferences("com.your.packagename", Context.MODE_PRIVATE);
selectedValue = prefs.getInt(key, 0);
return selectedValue;
}
public static boolean setIntToSharedPrefsForKey(String key, int value, Context context)
{
boolean savedSuccessfully = false;
SharedPreferences prefs = context.getSharedPreferences("com.your.packagename", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
try
{
editor.putInt(key, value);
editor.apply();
savedSuccessfully = true;
}
catch (Exception e)
{
savedSuccessfully = false;
}
return savedSuccessfully;
}
public static String getStringFromSharedPrefsForKey(String key, Context context)
{
String selectedValue = "";
SharedPreferences prefs = context.getSharedPreferences("com.your.packagename", Context.MODE_PRIVATE);
selectedValue = prefs.getString(key, "");
return selectedValue;
}
public static boolean setStringToSharedPrefsForKey(String key, String value, Context context)
{
boolean savedSuccessfully = false;
SharedPreferences prefs = context.getSharedPreferences("com.your.packagename", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
try
{
editor.putString(key, value);
editor.apply();
savedSuccessfully = true;
}
catch (Exception e)
{
savedSuccessfully = false;
}
return savedSuccessfully;
}
}
Пример использования:
для сохранения данных в общей Preferences:
GenericUtility.setIntToSharedPrefsForKey("selected_theme", 1, getApplicationContext());
ИЛИ
GenericUtility.setIntToSharedPrefsForKey("selected_theme", 1, MyActivity.this));
для извлечения данных из общих настроек:
int selectedValue = GenericUtility.getIntFromSharedPrefsForKey("selected_theme", getApplicationContext());
ИЛИ
int selectedValue = GenericUtility.getIntFromSharedPrefsForKey("selected_theme", MyActivity.this);
Я надеюсь, что это помогает.
Сохраните ваши значения предпочтений в 'Application level' –
yup thats, котор я сделал. Я сохранил значения в классе активности. – kiturk3
Вы действительно хотите выполнить что-то на основе ввода пользователем внутри виджета? –