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

LayoutInflater и android:textIsSelectable="true"

25.07.2015, 11:59. Просмотров 315. Ответов 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"  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2015, 11:59
Ответы с готовыми решениями:

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

Выбор платформы разработки "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=...

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

Добавлено через 47 минут
Проблему решил тем что начал динамически создавать в каждом цикле textview а не через inflater. Скорее всего просто баг андроида. ЗЫ invalidate() тоже ситуацию не спасло
0
MoreAnswers
Эксперт
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 приложении
Есть приложение локально загружающее html страничку и которая показывает текст...


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

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

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