Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改AppWidget上TextView的字体大小_Java_Android_Widget_Android Appwidget - Fatal编程技术网

Java 更改AppWidget上TextView的字体大小

Java 更改AppWidget上TextView的字体大小,java,android,widget,android-appwidget,Java,Android,Widget,Android Appwidget,从我的配置活动中,用户可以选择他/她的小部件所需的字体大小。我这样设置字体大小: RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); views.setFloat(R.id.tvConfigInput, "setTextSize", 25); 但我不知道如何用选定的大小更新小部件 有什么建议吗 谢谢您必须使用AppWidgetManager。例如,在AppWidgetProvider的o

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

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()
是一种
RemotableViewMethod
(至少在当前源代码中是这样),因此应该与
RemoteView
一起使用

首先,在安卓4.2模拟器上试用你的应用程序小部件,看看它是否有效。如果是这样,那么答案是
setTextSize()
在Android 4.2上可用,在您最初尝试的任何环境中都不可用,应该在两者之间的某个地方可用

否则,请确保您正在使用
AppWidgetManager
和类似
updateAppWidget()
的方法实际更新应用程序小部件