2014-03-05 35 views
0

我有一个Fragment,调用LoginRowFragment,它在几个其他Fragment s或Activity s中实例化。例如:立即更新片段的所有实例

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <fragment 
    android:id="@+id/loginrow" 
    class="com.mydomain.myproject.LoginRowFragment" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" />  

</LinearLayout> 

由于这Fragment在几个地方被实例化时,我试图找到一种方法来更新Fragment的动作发生时的内容(在这种情况下,当用户成功验证自己) ,所以我想要立即更新Fragment的所有实例,但由于这些Fragment中的许多在识别时被分离,所以我找不到方法。

这是我迄今为止尝试:

  • 设置一个BroadcastReceiverFragment内。但是,Fragment分离时不会触发。

  • 为每个实例设置相同的id。坏主意,它根本不起作用(基本上我已经尝试过这种愚蠢行为,因为我已经用完了想法)。

这可能吗?我怎样才能做到这一点?

回答

1

如果你有活性片段的同时恒定的量已知(或也许只有一个,我不知道),你可以在他们的活动作为存储领域,当一个变化occures直接更新。

然后,将您的当前状态存储在活动中,并在您的片段中执行对此状态的检查,onResume()是一个好地方:((MyActivity)getActivity()).checkState()。因此,当碎片会醒来,onResume()被调用,他们会检查他们的状态,并采取相应的行动。

+0

最后,这是我实现什么(或非常相似),我把一个'Activity'内跟踪活动的'Fragment's和在'的onResume更新他们的休息()'或'onAttach()'。谢谢! – nKn