android - 在不同的 Activity 中使用 findviewbyid

标签 android android-layout android-activity

如何在不同的 Activity 中使用 findViewById

现在我有一个名为 DrawingViewView,它包含一个 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/

相关文章:

java - 将 View 添加到 GridLayout 中的特定行和列

Android 撰写文本溢出重量不起作用

android - 如何在android中创建火焰?

android - Adb reverse tcp 无法在远程连接的 android 上运行

android - 当 Activity 以横向模式启动时应用程序崩溃

android - 为什么我的 Android 服务在我启动 Activity 时被终止?

java - 在 fragment 链之间传递数据的标准方法

android - Activity 方向没有恢复

java - 从 URL 获取 JSON,选择值并将其存储到 textView 中

android - ScrollView 使自定义布局不可见