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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
klaim
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 9
#1

LayoutInflater и android:textIsSelectable="true" - Программирование Android

25.07.2015, 11:59. Просмотров 247. Ответов 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.

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

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

Проблемы с установкой Android Studio для учетной записи "Гость" - Программирование Android
Мне нужно установить Android на PC- Windows, но для второго пользователя. Создал учётную запись Voldemar ( администратор), появилась в...

Игра "Морской бой" для Android в С#, с использованием Uniti 2d или 3d - Программирование Android
Помогите плиз)

Ошибка в Android Studio: "x86 emulation currently requires hardware acceleration" - Программирование Android
C:\Users\karr\AppData\Local\Android\sdk\tools\emulator.exe -netdelay none -netspeed full -avd Nexus_S_API_19 emulator: ERROR: x86...

Программно поставить android:password="false" - Программирование Android
Имеем в main.xml: &lt;EditText android:id=&quot;@+id/etPass&quot; android:password=&quot;true&quot; android:layout_width=&quot;0dip&quot; ...

Создание приложения в android "Транспортная карта" - Программирование Android
Доброго времени суток уважаемые гуру программирования на android! Появилась проблема, надо написать программу &quot;Транспортная карта&quot;,...

Программно установить android:layout_gravity="bottom" - Программирование Android
android:layout_gravity=&quot;bottom&quot; Не могу из кода вызвать этот метод, использую LinearLayout, применяю к ImageView. Точнее вообще не...

IDEA Отсутствует "Gradle: Android Application" - Программирование Android
Установил Intellij Idea Ultimate. При создании проекта в нем нет &quot;Gradle: Android Application&quot;. Как подключить вручную? В чем...

Может кто кинуть "Android Разработка приложений для чайников" Донна Фелкера? - Программирование Android
Собственно, вопрос в названии темы. Буду очень признателен :)

Java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.chimera.GmsModuleInitializer" - Программирование Android
java.lang.ClassNotFoundException: Didn't find class &quot;com.google.android.gms.chimera.GmsModuleInitializer&quot; on path:...

Отсутствует "Gradle: Android Application" - Программирование Android
Установил Intellij Idea Ultimate на линуксе. При создании проекта в нем нет &quot;Gradle: Android Application&quot;. Как подключить вручную? В чем...

"Hello, world" для Android в Eclipse - Программирование Android
Поставил Eclipse, создал device, в проекте код: package com.example.android.apis; import android.app.Activity; import...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
klaim
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 9
25.07.2015, 12:56  [ТС]     LayoutInflater и android:textIsSelectable="true" #2
Сори, немного ошибся с скринами скрин 1 - все нормально, скрин 2 - сам баг

Добавлено через 47 минут
Проблему решил тем что начал динамически создавать в каждом цикле textview а не через inflater. Скорее всего просто баг андроида. ЗЫ invalidate() тоже ситуацию не спасло
Yandex
Объявления
25.07.2015, 12:56     LayoutInflater и android:textIsSelectable="true"
Ответ Создать тему
Опции темы

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