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

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

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

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

02.06.2016, 17:28. Просмотров 254. Ответов 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 другого Фрагмента, не открывая его (Программирование Android):

Как программно изменить текст в TextView - Программирование Android
Как из MainNavigationActivity изменить текст в шапке меню? Там где текст @Android Studio@

Как изменить Textview из другого класса (класса адаптера RecyclerView) - Программирование Android
У меня есть список RecyclerView тоесть этот файл Basket и файл что реализует cardwiew BasketAdapter. как мне изменить TextView allPrice из...

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

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

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

Как программно изменить textview? - Программирование Android
Мне нужно изменить TextView на многострочный текст, используя переменную. . Пример ниже. String gtext = "elements/123.txt"; try...

5
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
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
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
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
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
03.06.2016, 16:48 #6
Цитата Сообщение от Drago56 Посмотреть сообщение
приведите пример передачи обычной строковой переменной
Обычный публичный метод Activity.

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

Как изменить форму TextView элемента? - Программирование Android
как изменить форму ТеxtView элемента? Т.е у меня текст на полупрозрачном прямоугольном фоне. Как можно сделать прямоугольник другой...

Не изменяется текст в TextView - Программирование Android
...А возможно беда в чем - то другом Собственно простецкая программа. Не могу и проверить на работоспособность, т.к все хорошо, но при...

Цветной текст в textview - Программирование Android
Вся фишка в том, чтобы установить текст не для строковой переменной, а для конкретной фразы. Т.е. к примеру фраза "Привет. Как дела?". Все...

Как у TextView задать текст? - Программирование Android
как у TextView задать текст? я так понимаю методом setText? (кстати а что в java нет свойств?) я попробовал просто через setText, но почему...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
03.06.2016, 16:48
Ответ Создать тему
Опции темы

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