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

Адаптер выводит повторные значения после обновления - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Чтение данных с сервера (TCP клиент) http://www.cyberforum.ru/android-dev/thread1831212.html
Добрый день подскажите как реализовать чтение данных с сервера непрерывным потоком и выводить все в TextView. отправку на сервер получилось сделать, все хорошо. А вот с приемом немогу понять. @Override public void onClick(View view) { switch (view.getId()) { case R.id.buttonEnter: try { ...
Android Hello World Понемногу учусь java. Так получилось, что компьютер очень слабенький за которым я работаю не поддерживает виртуализацию, точнее процессор компа. И не хотелось бы плодить темы, но есть несколько вопросов. Я хочу работать в NetBeans. Мне кажется он меньше всего потребляет ресурсов компьютера. Вопрос 1: Можно ли придумать что нибудь по поводу эмулятора если комп его не поддерживает? И ... http://www.cyberforum.ru/android-dev/thread1831178.html
Android Как сделать так, чтобы Service работал после закрытия программы
Здравствуйте! Никак не могу разобраться, как сделать так, чтобы Service работал после закрытия программы. Вот что я написал в манифесте: <service android:name=".MyService" android:enabled="true" android:exported="true"/> В самом класса выполняю все действия в отдельном потоке, есть предположения, что нужно Service выполнять в новом процессе, но я не знаю, как это сделать. Ещё наткнулся вот...
Android Как узнать имя Активити?
Всем добрый день! Подскажите, пожалуйста. Есть приложенька на андроиде. Как можно узнать название класса Активити?
Android TensorFlow на android, сборка проекта посредством Bazel http://www.cyberforum.ru/android-dev/thread1830630.html
Есть тут люди, у которых получилось успешно собрать тестовый проект tensorflow под android? Речь идет вот об этом: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android Понимаю, что вопрос, на котором я застопорился, к разработке под андроид по сути отношения, наверно, не имеет, но просто надеюсь на то, что кто-то любопытный успешно сбилдил этот проект, а значит...
Android Nine patch - неправильно растягивается Красным отмечено то что не правильно можно решить? подробнее

Показать сообщение отдельно
sergei1094
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 17
21.10.2016, 14:12     Адаптер выводит повторные значения после обновления
Здравствуйте. Подскажите пожалуйста что я делаю не так? У меня адаптер принимает данные с сервера и помещает их в листвью. Затем, когда поступают новые данные, я пытаюсь обновить адаптер...и как бы всё хорошо, но.. Когда приходят новые данные, например 2 сообщения, они добавляются в адаптер. Но вместе с новыми данными, добавляются и все остальные старые данные..Хотя по логам вижу что старых данных, поступивших с сервера у меня нет. Выходит что не выполняю data.clear(). Выполняю...data.clear(), мой листвью становится абсолютно пустым до следующего запроса Handler.postDelayed();. Снова запрос - листвью полный и с новыми данными...5 сек проходит и мой лист опять чистый...и так постоянно. Как это перебороть?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
public class ChatMsgAdapter extends ArrayAdapter<ResponseMsgArray> {
 
private Context context;
private ArrayList<ResponseMsgArray> data;
 
 
protected String LV_KEY = Auth.key;
protected int LV_USID = Integer.parseInt(Auth.id);
protected int GET_ID = Integer.parseInt(FriendActivity.get_id);
 
 
String LOG_TAG = "FriendLOG";
 
public ChatMsgAdapter(Context context, ArrayList<ResponseMsgArray> values) {
    super(context,R.layout.activity_friend_msg, values);
 
    this.data = values;
    this.context = context;
}
 
@Override
public View getView(int position, View convertView, ViewGroup parent) {
 
    LayoutInflater inflater = LayoutInflater.from(context);
 
    View v;
    int type = getItemViewType(position);
 
    if(type == LV_USID) {
        v = inflater.inflate(R.layout.activity_friend_msg_adapter, null);
 
        TextView user_id_msg = (TextView) v.findViewById(R.id.id_msg);
        TextView user_text = (TextView) v.findViewById(R.id.msg);
        TextView user_date = (TextView) v.findViewById(R.id.msg_time);
 
        user_text.setText(data.get(position).getMsg());
        user_date.setText(data.get(position).getMsg_time());
        user_id_msg.setText(data.get(position).getMsg_id());
 
    } else if (type == GET_ID) {
        v = inflater.inflate(R.layout.talker, null);
 
        TextView talker_text = (TextView) v.findViewById(R.id.msg);
        TextView talker_date = (TextView) v.findViewById(R.id.msg_time);
        talker_text.setText(data.get(position).getMsg());
        talker_date.setText(data.get(position).getMsg_time());
 
    } else {
        //Если нет например сообщений
        v = inflater.inflate(R.layout.msg_null, null);
    }
 
    return v;
}
 
public void setData(ArrayList<ResponseMsgArray> newData) {
    addAll(newData);
    notifyDataSetChanged();
}
 
 
@Override
public int getItemViewType(int position) {
 
    int newPosition = Integer.parseInt(data.get(position).getMsg_id_us());
    return newPosition;
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru