在AppWidget上更改TextView的字体大小

时间:2012-11-24 12:45:52

标签: java android widget android-appwidget

从我的配置活动中,用户可以选择他/她所需的小部件字体大小。我设置了这样的字体大小:

RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setFloat(R.id.tvConfigInput, "setTextSize", 25);

但我不知道如何用所选尺寸更新Widget

有什么建议吗?

由于

2 个答案:

答案 0 :(得分:1)

您必须使用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的类的名称。

答案 1 :(得分:0)

您的工作应该有效,因为setTextSize()RemotableViewMethod(至少在当前的源代码中),因此应该与RemoteViews一起使用。

首先,在Android 4.2模拟器上尝试您的应用小部件,看看它是否有效。如果确实如此,则答案是setTextSize()在Android 4.2上可用,在您最初尝试的任何环境中都不可用,并且应该可以在它们之间的某个地方使用。

否则,请确保您实际使用AppWidgetManagerupdateAppWidget()等方法更新应用小部件。