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

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

Войти
Регистрация
Восстановить пароль
 
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 103
#1

Передача данных через Intent - Программирование Android

18.02.2016, 01:34. Просмотров 518. Ответов 10
Метки нет (Все метки)

Не разобрался каким образом можно передать данные через Intent. Во втором классе
void startChat(){
clientThread = new ClientThread(deviceSelected, communicatorService); //DeviceSelected подчеркивает красным

Есть у меня лист с найденными устройствами Bluetooth:

Java
1
2
3
4
5
6
7
8
9
10
        listAdapter = new ArrayAdapter<BluetoothDevice>(getBaseContext(), android.R.layout.simple_list_item_1, discoveredDevices) {
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View view = super.getView(position, convertView, parent);
                final BluetoothDevice device = getItem(position);
                ((TextView) view.findViewById(android.R.id.text1)).setText(device.getName());
                return view;
            }
        };
        setListAdapter(listAdapter);
Я хочу взять из него 1 элемент-устройство и впихнуть в другую активность:

Java
1
2
3
4
5
6
        BluetoothDevice deviceSelected = discoveredDevices.get(position);
 
        Intent ChatActIntent = new Intent(this, ChatActivity.class);
        ChatActIntent.putExtra("DeviceName",deviceSelected.getName().toString());  //берем имя для TextView (работает)
        ChatActIntent.putExtra("Device", deviceSelected);
        startActivity(ChatActIntent);
И во второй активности мне нужно вызвать клиентСокет класс:

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
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.chat_activity);
 
        textData = (TextView) findViewById(R.id.data_text);
        textMessage = (EditText) findViewById(R.id.message_text);
        sendButton = (Button) findViewById(R.id.BtnSendMain);
        deviceName = (TextView)findViewById(R.id.deviceName);
 
        Intent ChatActIntent = getIntent();
        String DeviceName = ChatActIntent.getStringExtra("DeviceName");
        String DeviceSelected = ChatActIntent.getStringExtra("Device");
 
        deviceName.setText("to: "+ DeviceName);
 
        startChat();
 
    }
 
    void startChat(){
        clientThread = new ClientThread(deviceSelected, communicatorService);  //DeviceSelected подчеркивает красным
        clientThread.start();
    }
 
    private final CommunicatorService communicatorService = new CommunicatorService() {
        @Override
        public Communicator createCommunicatorThread(BluetoothSocket socket) {
            return new CommunicatorImpl(socket, new CommunicatorImpl.CommunicationListener() {
                @Override
                public void onMessage(final String message) {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            textData.setText(textData.getText().toString() + "\n" + message);
                            Log.d("ChatActivity", "Receive message");
                        }
                    });
                }
            });
        }
    };
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2016, 01:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача данных через Intent (Программирование Android):

Передача ArrayList<String> через intent - Программирование Android
Создан класс для передачи через intent: package ru.frozik6k.lohouse; import android.os.Parcel; import android.os.Parcelable; ...

Передача данных с использованием Intent - Программирование Android
Добрый день! Не получается перенести текст введённый с одного активити в другой. Код первого активити: Intent intent = new...

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] - Программирование Android
Выдает такую ошибку, хотя смартфон видит, он разрешает отладку, при запуске выдает такое сообщение, на самом экране смартфона при заходе в...

Starting: Intent { act=android.intent.action.MAIN. и пустой белый экран - Программирование Android
При запуске приложения всё заканчивается на Starting: Intent { act=android.intent.action.MAIN cat= cmp=com.example.lab2/.MainActivity } ...

Передать через intent VIEW - Программирование Android
Как можно через intent передать &quot;VIEW&quot;, полученное вот таким способом: View view = (View)findViewById(R.id.layout_linear); Передавая...

Как передать ссылку через Intent - Программирование Android
Как можно в такой класс package app.kray.anddev; import java.io.IOException; import java.io.InputStream; import...

10
korshun84
25 / 80 / 19
Регистрация: 08.07.2014
Сообщений: 429
18.02.2016, 07:02 #2
А вы не в курсе разве, что Java - это регистрозависимый язык ?
String DeviceSelected = ChatActIntent.getStringExtra("Device");
clientThread = new ClientThread(deviceSelected, communicatorService);
Это разные переменные. Это раз.
Имена переменных пишутся с маленькой буквы. Это два.
0
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 103
18.02.2016, 11:43  [ТС] #3
Именно, вот поэтому и спрашиваю про то, каким образом передать нужную переменную.
P.S. Сменил на:
Java
1
clientThread = new ClientThread(DeviceSelected, communicatorService);
, не помогло
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
18.02.2016, 11:55 #4
если надо передать ссылку на BluetoothDevice вдругую активити, значит в архитектуре программы обнаружен фатальный недостаток
другими словами - надо подумать и переделать так, что небыло желания пеедавать такой сложный (не POJO класс) между активити
0
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 103
18.02.2016, 12:12  [ТС] #5
По задумке я в 1 активити ищу и выбираю устройство блютуз, а в другом активити окно чата

lukmore заблокировано ростелекомом))
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
18.02.2016, 12:17 #6
почему не использовать фрагмент или диалог?
0
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 103
18.02.2016, 12:29  [ТС] #7
Нету опыта и знания для использования данной технологии
0
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 103
20.02.2016, 14:15  [ТС] #8
Немного ознакомился с технологией. Вы уверены все таки что блютузустройство нельзя передавать между активностями? И если нельзя, то между фрагментами можно?
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
20.02.2016, 14:21 #9
я где-то написать нельзя передавать?
Цитата Сообщение от AlexRu18 Посмотреть сообщение
Немного ознакомился с технологией.
Цитата Сообщение от AlexRu18 Посмотреть сообщение
И если нельзя, то между фрагментами можно?
мало ознакомился
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,654
Завершенные тесты: 1
20.02.2016, 14:23 #10
Цитата Сообщение от AlexRu18 Посмотреть сообщение
Вы уверены все таки что блютузустройство нельзя передавать между активностями?
Вообще нельзя, точно, 100%.
Цитата Сообщение от AlexRu18 Посмотреть сообщение
И если нельзя, то между фрагментами можно?
Для чего вообще его куда-то передавать? Если он что-то читает - читайте в одном месте (лучше в сервисе) и передавайте данные по интерфейсам куда нужно. Если отправляет - пусть каждый элемент получает свой экземпляр и при ненадобности удаляет.
0
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 103
20.02.2016, 19:31  [ТС] #11
В 5 комменте написано, для чего передавать)) Я видел примеры гугла, но там нагружено слишком. Моя программа работает, но если чат и выбор устройства блютуз находятся в одной активности
0
20.02.2016, 19:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2016, 19:31
Привет! Вот еще темы с ответами:

Передать ссылку на класс через Intent - Программирование Android
Возможно ли подобное? Есть класс, в котором храню больше 50 параметров разного типа (количество переменных все еще растет). Эти...

Передать через Intent информацию об Item - Программирование Android
Выводит ошибку и приложение закрывается by Force Close ошибка по ходу в Intente package kg.aykut.speak_kyrgyz; import...

Пытаюсь передать данные через Intent, но выходит ошибка - Программирование Android
Пытаюсь передать данные через Intent, но выходит ошибка, когда пытаюсь передать число Вот, что выводит в Логе 03-02...

Передать через intent ArrayList объектов своего класса - Программирование Android
У меня есть ArrayList из обьектов моего класса. Мне нужно передать это через intent в другое активити. Значит мой класс должен...


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

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

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