Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Drago56
0 / 0 / 0
Регистрация: 17.04.2011
Сообщений: 37
1

Изменить текст TextView другого Фрагмента, не открывая его

02.06.2016, 17:28. Просмотров 458. Ответов 5
Метки нет (Все метки)

Могу передать данные из Activiry во фрагмента когда он открыт.
Java
1
2
3
4
5
6
7
8
    blank1 = new BlankFragment();
                if (blank1 != null) {
 
                    FragmentManager fragmentManager = getSupportFragmentManager();
                    fragmentManager.beginTransaction()
                            .replace(R.id.conteiner, blank1).commit();
                }
((TextView) blank1.getView().findViewById(R.id.textView)).setText("Текст");
А как передать данные,т.е изменить текст TextView другого Фрагмента не открывая его?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2016, 17:28
Ответы с готовыми решениями:

Как программно изменить текст в TextView
Как из MainNavigationActivity изменить текст в шапке меню? Там где текст...

Как изменить Textview из другого класса (класса адаптера RecyclerView)
У меня есть список RecyclerView тоесть этот файл Basket и файл что реализует...

Текст из TextView перенести в другой TextView по нажатию Button
Люди, помогите плиз. Недавно начал ковырять программирование под Android. Хотел...

Запуск приложения не открывая его
Такое вообще возможно? При установке каждого приложения на экране появляется...

Обращение к textView из другого класса (не MainActivity) в AndroidStudio
Добрый вечер, у меня такой вопрос. В MainActivity можно обращаться к объектам,...

5
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,734
03.06.2016, 09:22 2
Цитата Сообщение от Drago56 Посмотреть сообщение
TextView другого Фрагмента не открывая его
Насколько я понимаю, это может привести к падению программы, поскольку фрагмент может быть не создан или удалён из памяти.
0
Drago56
0 / 0 / 0
Регистрация: 17.04.2011
Сообщений: 37
03.06.2016, 10:24  [ТС] 3
так и есть.
Есть поток получения и отправления данных при работе с блютус которая запускается в ActivityMain.
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
   public static class ConnectedThred extends Thread{
        private final BluetoothSocket copyBtSocket;
        private final OutputStream OutStrem;
        private final InputStream InStrem;
 
        public ConnectedThred(BluetoothSocket socket){
            copyBtSocket = socket;
            OutputStream tmpOut = null;
            InputStream tmpIn = null;
            try{
                tmpOut = socket.getOutputStream();
                tmpIn = socket.getInputStream();
            } catch (IOException e){}
 
            OutStrem = tmpOut;
            InStrem = tmpIn;
        }
 
        public void run()
        {
            byte[] buffer = new byte[1024];
            int bytes;
 
            while(true){
                try{
                    bytes = InStrem.read(buffer);
                    h.obtainMessage(RECIEVE_MESSAGE, bytes, -1, buffer).sendToTarget();
                }catch(IOException e){break;}
 
            }
 
        }
 
        public void sendData(String message) {
            byte[] msgBuffer = message.getBytes();
            // Log.d(TAG, "***Отправляем данные: " + message + "***"  );
 
            try {
                OutStrem.write(msgBuffer);
            } catch (IOException e) {}
        }
 
        public void cancel(){
            try {
                copyBtSocket.close();
               // redButton1.setImageResource(R.drawable.otkl);
               // redButton2.setImageResource(R.drawable.otkl);
               // redButton3.setImageResource(R.drawable.otkl);
               // redButton4.setImageResource(R.drawable.otkl);
            }catch(IOException e){}
        }
 
        public Object status_OutStrem(){
            if (OutStrem == null){return null;
            }else{return OutStrem;}
        }
    }
Есть handl которая обрабатывает полученные данные тоже в ActivityMain
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
 h = new Handler() {
            public void handleMessage(Message msg) {
                // sbprint="";
                switch (msg.what) {
                    case RECIEVE_MESSAGE:
                        byte[] readBuf = (byte[]) msg.obj;
                        String strIncom = new String(readBuf, 0, msg.arg1);
                        sb.append(strIncom);                                                // формируем строку
                        int endOfLineIndex = sb.indexOf("\r\n");                            // определяем символы конца строки
                        if (endOfLineIndex > 0) {                                            // если встречаем конец строки,
                            sbprint = sb.substring(0, endOfLineIndex);               // то извлекаем строку
                            sb.delete(0, sb.length());// и очищаем sb
                            split_buff = sbprint.split("\\|");
                            size_buff = split_buff.length;
                            if (size_buff >= 6) {
                                //  tt.setText(sbprint);
                                // Log.d(TAG,split_buff[0]+" "+split_buff[1]+" "+split_buff[2]+" "+split_buff[3]+" "+split_buff[4]+" "+split_buff[5]+" "+split_buff[6]+" "+split_buff[7]);
                               
                                //  Log.d(TAG,split_buff2[0]+" "+split_buff2[1]);
                                // tt.setText("Соединение установлено");
                              /*  if (split_buff[0].equals("5")) {
                                    redButton1.setImageResource(R.drawable.otkl);
                                    k = 0;
                                }
                                if (split_buff[0].equals("1")) {
                                    redButton1.setImageResource(R.drawable.vkl);
                                    k = 1;
                                }
                                //зал
                                if (split_buff[1].equals("6")) {
                                    redButton2.setImageResource(R.drawable.otkl);
                                    k2 = 0;
                                }
                                if (split_buff[1].equals("2")) {
                                    redButton2.setImageResource(R.drawable.vkl);
                                    k2 = 1;
                                }
                                //коридор
                                if (split_buff[2].equals("7")) {
                                    redButton3.setImageResource(R.drawable.otkl);
                                    k3 = 0;
                                }
                                if (split_buff[2].equals("3")) {
                                    redButton3.setImageResource(R.drawable.vkl);
                                    k3 = 1;
                                }
                                //спальная
                                if (split_buff[3].equals("8")) {
                                    redButton4.setImageResource(R.drawable.otkl);
                                    k4 = 0;
                                }
                                if (split_buff[3].equals("4")) {
                                    redButton4.setImageResource(R.drawable.vkl);
                                    k4 = 1;
                                }
*/
                               
                            }
                        }
                        break;
                }
            }
 
            ;
        };
Подскажите как сделать так, чтобы можно было в других Фрагментах считывать данные их потока запущенного в ActivityMain?
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,734
03.06.2016, 14:22 4
Сами-то видите, что выделили код не для Явы? И как его читать?
Цитата Сообщение от Drago56 Посмотреть сообщение
Подскажите как сделать так, чтобы можно было в других Фрагментах считывать данные их потока запущенного в ActivityMain?
Из одной крайности в другую. Зачем?
Если так уж надо, то можно через обратные вызовы, а можно прямо через getActivity().геттер_поля().
1
Drago56
0 / 0 / 0
Регистрация: 17.04.2011
Сообщений: 37
03.06.2016, 15:39  [ТС] 5
getActivity().геттер_поля(). приведите пример передачи обычной строковой переменной
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,734
03.06.2016, 16:48 6
Цитата Сообщение от Drago56 Посмотреть сообщение
приведите пример передачи обычной строковой переменной
Обычный публичный метод Activity.

Поскольку у вас используется Handler, я бы подумал над передачей сообщения во фрагмент с помощью него.
0
03.06.2016, 16:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2016, 16:48

Замена фрагмента из другого класса
Здравствуйте, такой вопрос появился у меня... значит есть класс main в котором...

Как программно изменить textview?
Мне нужно изменить TextView на многострочный текст, используя переменную. ....

Как изменить форму TextView элемента?
как изменить форму ТеxtView элемента? Т.е у меня текст на полупрозрачном...


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

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

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