从我的配置活动中,用户可以选择他/她想要的小部件字体大小。我这样设置字体大小:
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setFloat(R.id.tvConfigInput, "setTextSize", 25);
但我不知道如何用选定的大小更新小部件
有什么建议么?
谢谢
从我的配置活动中,用户可以选择他/她想要的小部件字体大小。我这样设置字体大小:
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setFloat(R.id.tvConfigInput, "setTextSize", 25);
但我不知道如何用选定的大小更新小部件
有什么建议么?
谢谢
您必须使用您的 AppWidgetManager。例如,在 AppWidgetProvider 的 onReceive() 方法中执行以下操作:
@Override
public void onReceive(Context context, Intent intent) {
views = new RemoteViews(context.getPackageName(),
R.layout.widget);
AppWidgetManager mManager = AppWidgetManager.getInstance(context);
ComponentName cn = new ComponentName(context,YourAppWidgetProvider.class);
...
mManager.updateAppWidget(cn, views);
}
这YourAppWidgetProvider
是扩展类的名称AppWidgetProvider
。
你所拥有的应该像setTextSize()
a一样工作RemotableViewMethod
(至少在当前的源代码中),因此应该与RemoteViews
.
首先,在 Android 4.2 模拟器上试用您的应用小部件,看看它是否有效。如果是这样,那么答案是setTextSize()
在 Android 4.2 上可用,在您最初尝试的任何环境中都无法使用,并且应该在它们之间的某个地方可用。
否则,请确保您实际上正在更新应用程序小部件,AppWidgetManager
使用updateAppWidget()
.