Android 在AppWidget上调用SharedReferences
我想知道在appWidget提供程序类上调用SharedReference值是否有问题,以便我可以使用它进行更新。我有一段代码,我在appWidget提供程序类中调用了一个方法,但它一直给我编译错误,我应该为它创建一个方法。代码如下:Android 在AppWidget上调用SharedReferences,android,Android,我想知道在appWidget提供程序类上调用SharedReference值是否有问题,以便我可以使用它进行更新。我有一段代码,我在appWidget提供程序类中调用了一个方法,但它一直给我编译错误,我应该为它创建一个方法。代码如下: prefs = getSharedPreference("myPrefs", Context.MODE_PRIVATE); 这是一个已知问题吗?如果不可能,是否有其他方法可以从配置类传递值。听起来您没有使用上下文初始化它。调用getSharedReference
prefs = getSharedPreference("myPrefs", Context.MODE_PRIVATE);
这是一个已知问题吗?如果不可能,是否有其他方法可以从配置类传递值。听起来您没有使用上下文初始化它。调用
getSharedReference
假定this.getSharedReference
可能不正确
您在哪个类中调用它,也许您可以提供更多的源代码
如果我猜,我会说你可以修复的是这样的:
prefs = getContext().getSharedPreference("myPrefs", Context.MODE_PRIVATE);
或许:
prefs = getApplicationContext().getSharedPreference("myPrefs", Context.MODE_PRIVATE);
或者,如果您有权访问视图类:
prefs = view.getContext().getSharedPreference("myPrefs", Context.MODE_PRIVATE);
AppWidgetProvider
s不是Context
s,因此无法访问getSharedReferences()
但是,有一种标准的方法可以设置AppWidget的首选项,Android开发者网站对此进行了说明:
基本思想是,当用户表示要配置小部件时,告诉系统启动活动。配置屏幕显然是一个活动
,因此它可以访问共享参考
。然后在那里进行所有配置,并手动更新AppWidget
,其ID在startIntent
中传递。一定要看看上面的链接,看看所需的详细步骤
另请参阅以获取实际的源代码示例。没问题;关于Android,我还有很多东西要学。干杯