编辑小部件的文本,不受 RemotView 的限制
Posted
技术标签:
【中文标题】编辑小部件的文本,不受 RemotView 的限制【英文标题】:Edit text of widget without being limited by a RemotView 【发布时间】:2013-07-29 19:19:39 【问题描述】:我有一个只包含一个 textView 的小部件,我希望能够根据用户偏好编辑 textView 的颜色、大小和字体。但似乎更新小部件的唯一方法是使用 RemoteView。这给我带来了两个问题:
1.) 这仅允许编辑文本、颜色和大小(但编辑大小仅在 API 16 中可用,我支持 11 及更高版本。)
2.) 这不允许我编辑字体。
幸运的是,textView 类http://developer.android.com/reference/android/widget/TextView.html 允许我做任何我想做的事情。有什么方法可以在我的小部件布局中的 textView 上调用这些方法,而不受 RemoteView 类的限制。
非常感谢所有帮助,这是我到目前为止的代码。
RemoteViews v = new RemoteViews(getPackageName(), R.layout.widget);
v.setTextViewText(R.id.widgetTextViewLineOne, widgetTextViewLineOneText);
v.setTextColor( R.id.widgetTextViewLineOne, widgetColor);
manager.updateAppWidget(awID, v);
【问题讨论】:
【参考方案1】:如果您只想在低 API 中设置 testView 文本大小,请使用以下代码: float textSize = 30.0f
v.setFloat(R.id.widgetTextViewLineOne, "setTextSize", textSize);
float-->textSize 是一个根据运行代码的设备缩放文本大小的数字。
【讨论】:
感谢您的帮助,但我需要能够编辑颜色、大小和字体。一定有办法通过远程视图调用这些 textView 方法,但我不确定如何。 因此,要调用方法,您只需从 RemoteViews 调用 setFloat、setInt 等方法之一,... 第一个参数是您要更改的 RemoteView 中的对象 ID,第二个参数只是您要调用的 TextView 方法的 String 名称,第三个参数是您提供给 String 方法的参数。所以我在上面的答案中写的等于widgetTextViewLineOne.setTextSize(textSize)...所以你需要做的就是从TextView类中找到你需要的方法,然后这样调用 这适用于除设置字体之外的所有内容。我似乎找不到支持这一点的方法。有吗? 我发现设置小部件的字体并不那么简单。谢谢您的帮助。更多信息在这里:***.com/questions/4318572/…以上是关于编辑小部件的文本,不受 RemotView 的限制的主要内容,如果未能解决你的问题,请参考以下文章
使用不受限制的密钥PLACES_API_ACCESS_NOT_CONFIGURED