如何更新片段?

时间:2015-10-09 01:09:01

标签: android android-fragments

我有Messanger App,它有一个带有2个片段的主/细节流布局。我使用了Android Studio提供的模板。 当ListFragment位于前台并且新用户登录时,ListView不会立即更新,并且用户不会出现在列表中。 当我选择不同的活动并之后返回ListFragment时,列表会更新。

这是我存储数据的地方。如果新用户登录,则调用addUser方法,这会将用户添加到List和Map。

public static List<ChatContent> ITEMS = new ArrayList<ChatContent>();

public static Map<String, ChatContent> ITEM_MAP = new HashMap<String, ChatContent>();

protected static void addUser(ChatContent userChatContent) {
    ITEMS.add(userChatContent);
    ITEM_MAP.put(userChatContent.user, userChatContent);
}

这就是我在ListFragment的onCreate方法中设置listAdapter的方法。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ArrayAdapter arrayAdapter = new ArrayAdapter<ChatData.ChatContent>(
            getActivity(),
            android.R.layout.simple_list_item_activated_1,
            android.R.id.text1,
            ChatData.ITEMS);

    setListAdapter(arrayAdapter);

}

仅供参考:当我在detailsFragment上并且收到新的聊天消息时,同样的事情发生了:除非我离开活动并回来,否则消息不会出现。

1 个答案:

答案 0 :(得分:1)

更新数据时,应使用这些代码更新UI。

arrayAdapter.notifyDataSetChanged();