Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Мобильная разработка (Android)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2016, 02:47   #1
sergei0194
Новичок
Джуниор
 
Регистрация: 22.10.2016
Сообщений: 17
Сообщение Добавление данных в текущий ArrayList

Всем привет ещё раз Пользуясь случаем, хотел бы не надолго поднять свой предыдущий топик http://www.programmersforum.ru/showthread.php?t=298685 . В том случае, когда я нажимаю кнопку GO,
сообщение, отображается только когда данные в адаптере изменились. Подскажите несколько путей реализации добавления сообщения через форму и показ его в реальном времени. Т.е., нажал на кнопку GO, и сообщение сразу же отобразилось. С HashMap'ом такое когда то реализовывал по типу:

Код:
            map = new HashMap<String, Object>();
            map.put(MSG, message);
            map.put(USID_MSG, id_message);
            data.add(map);
            sAdapter.notifyDataSetChanged();
            sList.setSelection(sAdapter.getCount() - 1);
            editText.setText("");
sergei0194 вне форума Ответить с цитированием
Старый 23.10.2016, 04:36   #2
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Я делал такое через жопу с RecyclerView.

У меня был Adapter, внутри него два списка. В одном объекты типа "отправляемое сообщение", во втором "сообщение". Adapter.getItemCount() возвращал сумму длин обоих списков. Соответственно, когда нам надо было рисовать, я определял, к какому списку относится индекс и запускал разный код.

При отправлении сообщения, данные сразу добавлялись в неотправленные, а при успешной отправке, в callback я удалял "неотправленное сообщение" и добавлял "отправленное".

Сам проект загнулся из-за Callback Hell и отсутствия у меня представления об модели памяти Android.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 23.10.2016, 12:07   #3
sergei0194
Новичок
Джуниор
 
Регистрация: 22.10.2016
Сообщений: 17
По умолчанию

Значит через жопу делать не будем Я так понимаю что всё-таки возможно добавить сообщение в текущий ArrayList. Самое главное, это добавить сообщение А остальную логику продумать я думаю что не составит проблем) Буду пытаться, как только что-нибудь получится, я отпишусь
sergei0194 вне форума Ответить с цитированием
Старый 23.10.2016, 19:52   #4
sergei0194
Новичок
Джуниор
 
Регистрация: 22.10.2016
Сообщений: 17
По умолчанию

Вопрос свой решил. В своей активности, я создал ссылку на
Код:
ArrayList<ResponseMsgArray> data;
Затем, создал в адаптере дополнительный метод addData() :
Код:
public void addData(ResponseMsgArray sendMsg) {
        addAll(sendMsg);
        notifyDataSetChanged();
    }
Ну и кнопочка:
Код:
public void sendMsg(View v) {

        editText = (EditText) findViewById(R.id.form_input);
        String form_input_msg = editText.getText().toString();

        if (!form_input_msg.equals("")) { 

            data = new ArrayList<>();
            ResponseMsgArray rms = new ResponseMsgArray(); 
            rms.setMsg(form_input_msg);
            rms.setMsg_id_us("4");
            sAdapter.addData(rms); // добавили данные, и обновили их

            GetMsg getMsg = new GetMsg();
            getMsg.SendMsg(getApplicationContext(), GET_ID, form_input_msg);
        }
    }
Осталось удалить дубликат сообщения после обновления, ну думаю что тут проблем точно никаких не составит Уважаемый New man, вот вам и выход из жопы Всем спасибо)
sergei0194 вне форума Ответить с цитированием
Старый 23.10.2016, 19:55   #5
sergei0194
Новичок
Джуниор
 
Регистрация: 22.10.2016
Сообщений: 17
По умолчанию

Кстати, если сделать вот так:
Код:
sAdapter.add(rms);
без использования метода addData(), данные в адаптере тоже появляются мгновенно. Хотя я не говорю адаптеру, что ему пора бы обновится...т.е. без notifyDataSetChanged();
sergei0194 вне форума Ответить с цитированием
Старый 23.10.2016, 22:07   #6
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Главное что решилась проблемма =) Хоть и не всегда решение красиво выглядит.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 23.10.2016 в 22:10.
pompiduskus вне форума Ответить с цитированием
Старый 27.10.2016, 08:11   #7
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

Цитата:
Сообщение от New man Посмотреть сообщение
отсутствия у меня представления об модели памяти Android.
Чем-то решали (статьи, книги) ?
Извините, граждане, что оффтоп, но, думаю, посетителям раздела может быть полезно.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
добавление данных в бд Дюша БД в Delphi 6 22.06.2014 22:30
Добавление данных в БД vongola Помощь студентам 3 23.03.2012 09:33
база данных. добавление и удаление данных midiss Общие вопросы Delphi 3 09.12.2011 13:07
добавление данных в бд wulf_01 Помощь студентам 1 18.10.2011 14:56
добавление данных sveta_s БД в Delphi 4 28.05.2011 01:48