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

Разделение сообщений в чате на группы - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android При чтении JSON файла из папки Assets разные данные http://www.cyberforum.ru/android-dev/thread1596190.html
Хочу из файла test.txt вытащить данные json. Файл лежит в папке assets. private void readJSONFile(int i) throws JSONException { // Reading text file from assets folder StringBuffer sb = new StringBuffer(); BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader(getAssets().open("test.txt"))); String temp;
Android Можно ли взаимодействовать с Wi-Fi через USB провод на ПК? Можно ли взаимодействовать с Wifi через USB провод на пк ? http://www.cyberforum.ru/android-dev/thread1596142.html
Как заменить иконку на кнопке? Android
Не могу найти метод меняющего иконку на обычной кнопке Button в зависимости от условий. Вариант с ToggleButton не подходит.
Ошибка Error:Cause: peer not authenticated Android
Кто знает,что за ошибка? build.gradle buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.0'
Android Для чего нужен метод syncState() в ActionBarDrawerToggle http://www.cyberforum.ru/android-dev/thread1595594.html
Для чего нужен метод syncState() в ActionBarDrawerToggle , не понятно, без syncState() и так все работает?
Android Необходимо найти ошибку! Есть БД и php файл,который выводит данные в формате json.НО я перепробовав все не смог понять,что не так... Помогите пожалуйста import java.util.ArrayList; import java.util.HashMap; import java.util.List; import com.devcolibri.parser.JSONParser; import org.apache.http.NameValuePair; import org.json.JSONArray; подробнее

Показать сообщение отдельно
dajver
407 / 271 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
29.11.2015, 17:48  [ТС]     Разделение сообщений в чате на группы
Цитата Сообщение от Mikalai Посмотреть сообщение
я бы держал список сообщений примерно в таком виде:
попробовал, как вы скзали, прячет все аватарки, безвыборочно

адаптер
Кликните здесь для просмотра всего текста
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
public class OnlineChatAdapter extends BaseCustomAdapter {
 
//    private ArrayList<String> stringArrayList = new ArrayList<>();
    private List<MessageModel> messages = new LinkedList<>();
    private static String lastSpeaker;
 
    public OnlineChatAdapter(Context context) {
        this.context = context;
    }
 
    public void addItem(final MessageModel item) {
//        stringArrayList.add(item);
        messages.add(item);
        notifyDataSetChanged();
    }
 
    public void addSeparatorItem(final MessageModel item) {
//        stringArrayList.add(item);
        messages.add(item);
        mSeparatorsSet.add(messages.size() - 1);
        notifyDataSetChanged();
    }
 
    @Override
    public int getItemViewType(int position) {
        if(mSeparatorsSet.contains(position)) {
            return TYPE_SEPARATOR;
        } else {
            return TYPE_ITEM;
        }
    }
 
    @Override
    public int getViewTypeCount() {
        return super.getViewTypeCount() + 1;
    }
 
    @Override
    public int getCount() {
        return messages.size();
    }
 
    @Override
    public MessageModel getItem(int position) {
        return messages.get(position);
    }
 
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        Holder holder = new Holder();
        MessageModel model = null;
        if(messages.size() > 0) {
            model = getItem(position);
        }
 
        int type = getItemViewType(position);
        if(type == TYPE_ITEM) {
            convertView = inflater.inflate(R.layout.item_full_issue_user, null);
            holder.text = (TextView) convertView.findViewById(R.id.message);
            holder.date = (TextView) convertView.findViewById(R.id.date);
            holder.corner = (ImageView) convertView.findViewById(R.id.corner);
            holder.avatar = (ImageView) convertView.findViewById(R.id.avatar);
            holder.date.setVisibility(View.GONE);
 
            if(model != null) {
                holder.text.setText(model.getMessage());
            }
 
            if(messages.get(position).getUserName().equals(lastSpeaker)) {
                //прячем аватарку
                holder.avatar.setVisibility(View.INVISIBLE);
                holder.corner.setVisibility(View.INVISIBLE);
            } else {
                this.lastSpeaker = messages.get(position).getUserName();
                holder.avatar.setVisibility(View.VISIBLE);
                holder.corner.setVisibility(View.VISIBLE);
                //показываем аватарку
            }
 
        } else {
            convertView = inflater.inflate(R.layout.item_full_issue_admin, null);
            holder.text = (TextView) convertView.findViewById(R.id.message);
            holder.date = (TextView) convertView.findViewById(R.id.date);
            holder.corner = (ImageView) convertView.findViewById(R.id.corner);
            holder.avatar = (ImageView) convertView.findViewById(R.id.avatar);
            holder.date.setVisibility(View.GONE);
 
            if(model != null) {
                holder.text.setText(model.getMessage());
            }
 
            //это надо прятать
//            holder.avatar.setVisibility(View.INVISIBLE);
//            holder.corner.setVisibility(View.INVISIBLE);
        }
        return convertView;
    }
 
    public class Holder {
        TextView text;
        TextView date;
        ImageView corner;
        ImageView avatar;
    }
}


как заполняю
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 MessageModel userModel = new MessageModel("lala", "user");
        MessageModel agentModel = new MessageModel("dfgfdh", "agent");
        onlineChatAdapter.addItem(userModel);
        onlineChatAdapter.addItem(userModel);
        onlineChatAdapter.addItem(userModel);
        onlineChatAdapter.addSeparatorItem(agentModel);
        onlineChatAdapter.addItem(userModel);
        onlineChatAdapter.addSeparatorItem(agentModel);
        onlineChatAdapter.addSeparatorItem(agentModel);
        onlineChatAdapter.addSeparatorItem(agentModel);
        onlineChatAdapter.addItem(userModel);
        onlineChatAdapter.addItem(userModel);
        onlineChatAdapter.addItem(userModel);
        onlineChatAdapter.addSeparatorItem(agentModel);
        onlineChatAdapter.addSeparatorItem(agentModel);
        onlineChatAdapter.addItem(userModel);
        onlineChatAdapter.addSeparatorItem(agentModel);
        onlineChatAdapter.addSeparatorItem(agentModel);
        onlineChatAdapter.addSeparatorItem(agentModel);
        onlineChatAdapter.addSeparatorItem(agentModel);
 
Текущее время: 05:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru