2015-10-09 4 views
2

У меня есть приложение Messenger, у которого есть макет основного/подробного потока с двумя фрагментами. Я использовал шаблон, предоставленный Android Studio. Когда ListFragment находится на переднем плане, а новые пользовательские журналы в ListView не обновляются сразу, а Пользователь не отображается в списке. Когда я выбираю другое действие и возвращаюсь к списку, то список обновляется.Как обновить фрагмент?

Здесь хранятся мои данные. Если новый пользователь регистрируется в методе addUser, и это добавляет пользователя в список и карту.

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); 
} 

Вот как я установил listAdapter в методе onCreate в ListFragment.

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- initialized/32998458 –

+0

опубликуйте полный код, чтобы я мог помочь вам. – TheGreat004

ответ

1

При обновлении данных вы должны использовать этот код для обновления пользовательского интерфейса.

arrayAdapter.notifyDataSetChanged(); 
+0

Я думаю, проблема, с которой я сейчас сталкиваюсь, заключается в том, что я не знаю, как получить доступ к фрагменту. – BraveHeart

+0

Используйте обработчик для доступа к фрагменту. –

+1

Использование LocalBroadcastManager! –

Смежные вопросы