我需要在我的小部件活动中从SharedPreferences
获取布尔值。我怎样才能做到这一点?这甚至可能吗?因为Widget Receiver是广播接收器的子类,它不是上下文。
答案 0 :(得分:0)
您需要从上下文中获取SharedPreferences实例,该实例在窗口小部件提供程序的onUpdate()方法中提供。像这样:
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME,0);
}
您可以分别使用putBoolean(key,value)和getBoolean(key,value)来存储和加载来自共享首选项的布尔值。
答案 1 :(得分:0)
AppWidgetProviderClass
的几乎所有方法都获得Context
,让我们来看看:
onAppWidgetOptionsChanged (Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions)
onDeleted(Context context, int[] appWidgetIds)
onDisabled(Context context)
onEnabled(Context context)
onReceive(Context context, Intent intent)
onUpdate (Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
所以,只需使用这个上下文就可以了:
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);