Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
klaim
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 9
1

LayoutInflater и android:textIsSelectable="true"

25.07.2015, 11:59. Просмотров 376. Ответов 1
Метки нет (Все метки)

Довольно странная ситуация получается, видать мне везет на нестандартные баги андроида
Есть фрагмент чата, в него с ресивера летят данные, он их обрабатывает и все как бы ничего, но была проблема, при повороте экрана чат терялся (чат делался конечно через LayoutInflater) эта проблемы была решена дублированием сообщений чата в TreeMap, при перевороте сохранение их в savedInstanceState, а при пересоздании активити сохраненные данные отправлялись на заполнение в LayoutInflater и чат наполнялся сообщениями. И все бы ничего если бы мне не пришло в голову в добавить в шаблон LayoutInflater параметр android:textIsSelectable="true". Вот тут начались проблемы, сама прога работает отлично, данные с сервера нормально обрабатываются и добавляются но только мы переворачиваем экран начинается цирк:
(См вложение #1)
Последним сообщением заполняется весь чат, самое странное то, что в логе все сообщения отображает правильно. А вот в блоке Inflater'a оно показывает не пойми что (См вложение #2)

На всякий случай даю функцию обработки и наполнения этого самого чата:

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
public static void JSONcallBackPostWork (Map<Integer, JSONObject> SortedJson, final Context context){
 
        Log.d("MyAppDEGUG - POST", SortedJson.toString());        
        LayoutInflater ltInflater = (LayoutInflater)context.getSystemService
                (Context.LAYOUT_INFLATER_SERVICE);
 
        for (Map.Entry<Integer, JSONObject> entry : SortedJson.entrySet())
        {
            try {
                View item = ltInflater.inflate(R.layout.chatlines, mlinLayout, false);
 
                Integer key = entry.getKey();
                JSONObject  value = entry.getValue();
                mChatStek.put(key.toString(),value); // переменная в которую сохраняем чат что бы восстановить при повороте
               
               
                int type = value.optInt("type");
                if(type==3) continue;
                final TextView mTextPrivate = (TextView) item.findViewById(R.id.msgPrivate);
 
                mTextPrivate.setText(Html.fromHtml(value.optString("text")));
 
                item.getLayoutParams().width = RadioGroup.LayoutParams.MATCH_PARENT;
                mlinLayout.addView(item);
 
            } catch (Exception e) {//
            }
        }
    }
Вообщем проблема проявляется исключительно при включенном параметре android:textIsSelectable="true" для R.id.msgPrivate.

Буду рад любой помощи
0
Миниатюры
LayoutInflater и android:textIsSelectable="true"   LayoutInflater и android:textIsSelectable="true"  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2015, 11:59
Ответы с готовыми решениями:

Android:debuggable="true"
Обновил IntelliJ IDEA до версии 2016. При запуске отладки требует указания параметра debuggable в...

Выбор платформы разработки "1С Мобильная платформа" или "Android Studio"
Всем, здравствуйте! Есть задача по разработке клиента для терминала сбора данных. Для...

При эмулировании вместо надписи "Hello world" отображается "android"
Привет форумчане! Я только-только начинал программировать на андроиде. Поставил среду, все настроил...

Не могу запустить Android приложение. "Unable to resolve target 'android-8'"
Не могу запустить Android приложение. Вроде всё установил, кучу всяких проблем решил загуглив, как...

Ошибка "Activity class {com.Android.System/com.Android.System.MainActivity} does not exist"
Starting: Intent { act=android.intent.action.MAIN cat= cmp=com.android.system/.MainActivity }...

1
klaim
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 9
25.07.2015, 12:56  [ТС] 2
Сори, немного ошибся с скринами скрин 1 - все нормально, скрин 2 - сам баг

Добавлено через 47 минут
Проблему решил тем что начал динамически создавать в каждом цикле textview а не через inflater. Скорее всего просто баг андроида. ЗЫ invalidate() тоже ситуацию не спасло
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2015, 12:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

"No Android SDK found. configure an Android SDK". Что делать?
Сначала Андроид Студио зависал при компиляции приложения и выдавал сообщение, что слетел...

Android virtual device. При нажатии на "Ок" ничего не происходит
Всем привет! проблема с созданием виртуального устройства, установил adt скачал сдк, установил...

Часы для Android и ошибка "unfortunately clock has stopped"
Задали лабораторную по создания приложения часов для андроид. По скольку ни с андройдом ни с явой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.