0

当我尝试从父活动中更新一些片段 UI 元素时,我注意到一个奇怪的行为。

如果有人可以提供一些背后的推理,我将不胜感激!

这是场景:

我有一个活动......说我的活动。在 MyActivity我有几个片段:LeftFragmentRightFragment。LeftFragment 有一个按钮:“ showTheDialogBtn ”。当我按下“showTheDialogBtn”时,我得到一个对话框,其中包含一些 EditText 字段和最后一个按钮 OK。该对话框是在 MyActivity 中创建的(例如不在 LeftFragment 中)。现在,当我按下该对话框上的 OK按钮时,我试图通过调用rightFragment.changeMyTextFieldColor(RED)的实例来更改 RightFragment 上的文本颜色。

我注意到的是,在 RightFragment 的实例上调用 changeMyTextFieldColor 并没有做任何事情。但是,如果我在 MyActivity 内(在 OK 按钮的 onClickListener 内)获得了需要更改的 TextView,那么一切似乎都正常。

这对任何人都有意义吗?请告诉我。

4

1 回答 1

0

它没有改变的原因是因为你调用 changeMyTextFieldColor那与ONCREATEVIEW(). 更多细节:您在屏幕上看到的内容来自 onCreateView()。所以如果你想更新 UI,你应该修改来自 onCreateView() 的视图。你应该:

  1. 确保视图的上下文来自 onCreateView() 和“changeMyTextFieldColor”的上下文是相同的。
  2. 确保更改实际属于从 onCreateView() 生成的“视图”的组件的颜色。例如:保存 onCreateView() 的视图以供以后修改。
于 2013-01-07T14:00:55.760 回答