我选择了让每个 Activity 实现 onSharedPreferenceChangedListener 的路径。为了让服务更新值一次发送回多个活动(它不关心哪个具有焦点)
当监听器被调用时,我只有钥匙。然后我必须执行该键的查找以获取相应的视图。这一直不成功。我尝试使用 getCurrentFocus(),然后使用 findViewWithTag()。甚至在 getFocus() 之后尝试了 .getRoot()。
出于测试目的,我只是尝试在侦听器之外获取视图的句柄。我必须确保 setText 在 UIthread 内的 runnalbe 中运行才能工作。
我查看了其他一些代码,如果检查密钥,它们会执行一堆其他代码。我可以这样做来动态获取视图的句柄,因为我会知道对应于它的字符串键的 id 是什么,但两种方式似乎都效率低下。
这让我想到了整体问题。这是一种使用 XML 直接从首选项填充视图文本的方法吗?这样我就不必担心实现监听器的不同活动。一切都将包含在我可以自由移动的 XML 文件中。