2014-12-24 6 views
0

Итак, у меня есть адаптер для ресайклеров, настроенный в моем MainActivity. Этот адаптер подключается к арреалисту пользовательского объекта, который я создал вызываемой группой.Адаптер просмотра ресайклера, не отражающий изменения

public static RecyclerView.Adapter groupsListAdapter; 
public ArrayList<Group> myGroups; 

// внутри OnCreate основной деятельности

groupsListAdapter = new MyAdapter(myGroups); 

В другой деятельности, я обновляет содержимое этого ArrayList, первый, пропуская его через намерение.

Intent groupCreationIntent = new Intent(MainActivity.this, NewGroupActivity.class); 
     groupCreationIntent.putExtra("groupsList",myGroups); 
     startActivity(groupCreationIntent); 

И после этого обновляя его в другой деятельности.

private ArrayList<Group> groups; 

// в OnCreate метод другой деятельности

groups = (ArrayList<Group>) getIntent().getSerializableExtra("groupsList"); 

При переходе обратно к предыдущей деятельности (вторая активность используется для ввода некоторой информации и синхронизации его с моей базой данных) я запускаю этот код ,

groups.add(myGroup); 
MainActivity.groupsListAdapter.notifyDataSetChanged(); 
finish(); 

Проблема заключается в том, что адаптер список не отражает изменения, ничего не появляется в моем списке когда я вернуться к основному виду деятельности. Что я делаю не так?

+0

Если аррайалист заполняется, тогда было бы лучше, если вы сделаете последнюю часть уведомления notifydataset изменения основного действия после получения результатов. – Ahmed

+0

Вы проверили другие сообщения о notifydatasetchange(), не отражающие изменения? – Elltz

ответ

1
class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { 

    private List<Group> items; 

    public MyAdapter(List<Group> items) { 
    this.items = items; 
    } 

    // .. your implementation 

    // add and call this 
    public void add(Group item) { 
    this.items.add(item); 
    notifyItemInserted(items.size() - 1); 
    } 
} 

это не связано с вашим вопросом, вы не должны использовать статическое поле для взаимодействия «Активность в действие».