如何在不同的 Activity
中使用 findViewById
?
现在我有一个名为 DrawingView
的 View
,它包含一个 Canvas
可供绘制。在另一个 SettingsActivity
中,我有一个 Button
允许他们选择一个 Color
。
我需要能够从单独的设置 Activity 中访问 activity_main.xml
中的 DrawingView
。
当我调用 findViewById()
时,它返回 null
,因为它正在搜索不同 Activity 中的 id。
有什么简单的方法可以做到这一点吗?
最佳答案
从另一个 Activity 访问 View 将是一个问题,即使您可以安排进入主 Activity 的布局层次结构,这也不是正确的做法。
处理这个问题的最好方法是实现一个 PreferenceChangeListener
在具有您的 DrawingView
的 Activity 中。然后它可以响应首选项值的变化并更改 DrawingView
中的颜色。有关如何实现监听器的信息,请参阅文档。
这假设您将颜色选择保存在 SharedPreferences
对象中,因此它将持久存在。 (如果您使用内置的首选项框架,这是自动发生的事情,或者您可以自己编写选择。)如果您没有使用 SharedPreferences
,那么@cricket_007 建议使用startActivityForResult
可能是正确的选择。
关于android - 在不同的 Activity 中使用 findviewbyid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35284768/