2015-10-09 45 views
2

我有Messanger应用程序,它具有包含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); 

} 

FYI:当我在detailsFragment和新的聊天消息到达同样的事情发生了:该消息不会出现,除非我离开活动回来。

+0

我米过于面临同样的问题... http://stackoverflow.com/questions/32996883/how-to-update-the-content-of-view-pager-once-it-is-初始化/ 32998458 –

+0

发布您的完整代码,以便我可以帮助您的朋友 – TheGreat004

回答

1

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

arrayAdapter.notifyDataSetChanged(); 
+0

我想我现在面临的问题是我不知道如何访问片段。 – BraveHeart

+0

使用处理程序来访问片段。 –

+1

使用LocalBroadcastManager! –