Android 将RemoteView转换为视图

Android 将RemoteView转换为视图,android,android-widget,Android,Android Widget,我正在尝试将RemoteViews实例渲染到画布上,就像我对常规视图所做的那样。我用 RemoteView.apply(上下文,空) 它返回一个FrameLayout,其中所有视图都嵌套并正确测量(位置和大小正确),但在使用.draw后,在返回的视图上,它会呈现所有没有值的元素--TextView为空,AnalogClock在00:00重置,依此类推 有什么想法吗?我迷路了:(不确定问题是否仍然存在。不过,这是我使用RemoveView的经验。看来你不能直接调用draw()在返回的视图上。您必须

我正在尝试将RemoteViews实例渲染到画布上,就像我对常规视图所做的那样。我用

RemoteView.apply(上下文,空)

它返回一个FrameLayout,其中所有视图都嵌套并正确测量(位置和大小正确),但在使用.draw后,在返回的视图上,它会呈现所有没有值的元素--TextView为空,AnalogClock在00:00重置,依此类推


有什么想法吗?我迷路了:(

不确定问题是否仍然存在。不过,这是我使用RemoveView的经验。看来你不能直接调用
draw()
在返回的视图上。您必须将此视图添加到父容器中,使其成为全局视图层次结构的一部分。例如,您有一个
活动
,其中有一个
框架布局
。您的代码如下所示

FrameLayout parent = findViewById(R.id.container);
View view = RemoteViews.apply(getActivity(), parent);
parent.addView(view);

现在您应该可以看到测试了。如果您设置了侦听器,它们也会正常工作。

尝试在调试器中进入系统库。请发布您的xml。您在什么时候设置TextView、AnalogClock等的值?@KarimVarela simple AnalogClock,除了布局宽度和布局高度之外,xml中没有任何值。在设备,它显示正确的时间,在apply()返回的视图中,它始终显示00:00。您必须在某处使用
setTextViewText()
或其他setter方法设置值,对吗?在调用
apply()之前,您确定在右侧
remoteview
实例上设置了适当的值吗
?你能在这里发布你的代码吗?我觉得……你可能正在调用RemoteView.apply(上下文,null)在设置textview中的值之前,但在初始化之后调用。这就是为什么它没有强制关闭,而是带有空值的原因。因此,请将您的值设置为textview和时钟,然后调用您的方法RemoteView。apply(context,null);以及您作为null传递的方法中的第二个参数是什么。