Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Как обновить список RecyclerView после добавления item? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Работа в фоне. Отобразить картинку по url http://www.cyberforum.ru/android-dev/thread1670439.html
Добрый вечер! Не получается решить две ситуации, уже обгуглился, голова пухнет... 1)есть маяк Beacon, когда я запускаю приложение мне приходит уведомление, если маяк в зоне видимости. Мне надо...
Программирование Android Как сохранить фокус в пределах одной View Требуется сделать управление компонентом с помощью стрелок клавиатуры или D-Pad джойстиком, подключенным к устройству. Управляться будет компонент, написанный на Canvas. Проблема в том, что при... http://www.cyberforum.ru/android-dev/thread1670355.html
Программирование Android Парсинг json
Здравствуйте! Имеется такой json код: { "data": }И я его обрабатываю так: JSONArray urls = json.getJSONArray("data"); Тогда, как мне обработать такой json: Жду ответа! Добавлено через 2...
Установка работы GitHub и git на Windows 7 ? Программирование Android
Можно где то найти по шагавшую инструкцию ПОДРОБНУЮ по установке и работе программы git? И как связать GitHab / git / и AndroidStudio -если можно?
Программирование Android Узнать размер view http://www.cyberforum.ru/android-dev/thread1670060.html
Как узнать размер view, если он лежит в layout, и обрезается им (размер view больше, чем размер layout). view.getHeight и view.getMeasuredHeight возвращают размер только видимой области (т.е. размер...
Программирование Android Скроллинг внутри layout в 2х направлениях Нужно реализовать скроллинг как по вертикали, так и по горизонтали, но layout, который должен перемещаться внутри другого, просто дергается: @Override public boolean onTouchEvent(MotionEvent... подробнее

Показать сообщение отдельно
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
26.02.2016, 12:12
Вроде бы, неплохо написан код.
Вот у вас заполнение данными: final List<ItemData> items = getItemsFromCursor(cursor);
Вот у вас соединение данных с адаптером: adapter = new RecyclerViewAdapter(items);
Цитата Сообщение от disx Посмотреть сообщение
items.clear(); не понимаю где это сделать?
Дальше у вас написано не совсем чётко.
Java
1
2
3
4
5
number = cursor.getString(column);
nameContact =  cursor.getString(column2);
...
// добавляем запись в базу
controlRec();
И здесь бы надо обновить данные, но этого нет. Я бы делал так.
Во-первых, переписал бы метод getItemsFromCursor, например, так.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public static List<ItemData> getItemsFromCursor(Cursor cursor, List<ItemData> items){
        if (items == null)
            items = new ArrayList<>();
        else
            items.clear();
        while(cursor.moveToNext()){
            String phone = cursor.getString(cursor.getColumnIndex("number"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            items.add(new ItemData(phone, name));
        }
 
        return items;
    }
Во-вторых, вы можете не читать из БД каждый раз, если новая запись точно попадёт в конец списка. В этом случае я бы просто после // Do something with the phone number... написал бы так:
Java
1
2
items.add(new ItemData(number, nameContact));
adapter.notifyDataSetChanged();
Но можно и так:
Java
1
2
items = getItemsFromCursor(cursor, items);
adapter.notifyDataSetChanged();
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru