从父活动中更新Fragment UI

时间:2012-04-06 14:42:48

标签: android user-interface android-activity fragment

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

如果有人可以提供一些理由,我会非常感激!

以下是该方案:

我有一个活动...说MyActivity。 内部MyActivity 我有几个片段: LeftFragment RightFragment 。 LeftFragment有一个按钮:“ showTheDialogBtn ”。当我按下“showTheDialogBtn”时,我会看到一个带有一些EditText字段的对话框,另一个带有另一个按钮确定。该对话框在MyActivity 中创建(例如,不在LeftFragment内)。现在,当我按下该对话框上的确定按钮时,我试图通过调用 rightFragment.changeMyTextFieldColor(RED)的实例来更改位于RightFragment上的文本颜色。

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

对任何人都有意义吗?请让我知道。

1 个答案:

答案 0 :(得分:0)

之所以没有更改是因为您拨打的changeMyTextFieldColorONCREATEVIEW()无关。 更多细节:您在屏幕上看到的内容来自onCreateView()。因此,如果要更新UI,则应修改来自onCreateView()的视图。你应该:

  1. 确保视图的上下文来自onCreateView(),而'changeMyTextFieldColor'的上下文是相同的。
  2. 确保更改实际属于onCreateView()生成的“视图”的组件的颜色。例如:保存onCreateView()的视图以供以后修改。