0

親アクティビティ内から一部のフラグメント UI 要素を更新しようとすると、奇妙な動作に気づきました。

誰かがその背後にある理由を提供できれば、本当に感謝しています!

シナリオは次のとおりです。

アクティビティがあります... MyActivity と言います。MyActivity 内には、 LeftFragmentRightFragmentという 2 つのフラグメントがあります。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 に答える