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

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

Войти
Регистрация
Восстановить пароль
 
Bolbine84455
2 / 2 / 1
Регистрация: 12.03.2014
Сообщений: 298
#1

Передать массив с текстом через интент - Программирование Android

16.03.2014, 14:23. Просмотров 867. Ответов 3
Метки нет (Все метки)

Глазами прошелся по мануалу. Код, указанный ниже, кривой! Я предупредил Сам знаю, что есть грубые ошибки.
Мне необходимо передать текстовый массив.
Понял, что в коде классе-источнике(MainActivity) надо прописать:
Java
1
2
3
4
5
6
7
8
9
String [][] txtTop = new String [4][4];
            for (int i=0; i<4; i++){
                for (int j=0; i<4; j++){
                    txtTop[i][j]="["+i+"]"+"["+j+"]";
                }
            }
Intent mapintent = new Intent (this, MapActivity.class); 
              mapintent.putExtra(EXTRA_MESSAGE, txtTop);
              startActivity(mapintent);
, а в классе-приемнике(MapActivity):
Java
1
2
3
Intent mapintent = new Intent (this, MapActivity.class); 
              mapintent.putExtra(EXTRA_MESSAGE, txtTop);
              startActivity(mapintent);
Есть проблемы и вопросы:
1) Могут ли в разных классах существовать одноименные переменные и не скажется ли это пагубно на приложении?
2) При передачи данных из класса в класс нужно ли в классе-приемнике создавать переменные для принятия данных?
3) Что это за EXTRA_MESSAGE в вышеуказанном коде? Для чего он? П.С. Он подсвечивается красным.
4) Что не так в этом коде? Объясните технологию работы с Intent.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2014, 14:23     Передать массив с текстом через интент
Посмотрите здесь:

Как передать картинку через интент - Программирование Android
Как передать картинку которая есть в drawable через интент в другое активити?можете написать пример кода? Добавлено через 1 час 51...

Использование интент фильтра - Программирование Android
Вот к примеру когда в ES Explorer выбираем какой-то файл, ES Explorer показывает список приложений которым можно открыть файл, как с...

Передать файл через socket или через ftp api - Программирование Android
Посоветуйте как поступить: Есть файл на устройстве его нужно загрузить на сервер. 1 Загружать через socket, создав на сервере...

В одном фрагменте запустить интент - во втором поймать его - Программирование Android
Если оба фрагмента находятся в LinearLayout одного активити можно ли из одного фрагмента запустить интент а во втором поймать его? У меня...

Передает ли Input Method Service какой либо интент - Программирование Android
Задача состоит в том что надо запустить активность либо сервис при вызове клавиатуры каким либо приложением(возможно ли это точно не...

Можно ли написать интент на приглашение в друзья или в группу фейсбука - Программирование Android
Можно ли написать интент на приглашение в друзья или в группу фейсбука?, если да как узнать ссылку

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
16.03.2014, 15:21     Передать массив с текстом через интент #2
слух делай так лучше
1) создай дополнительный класс например Name

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Name {
    String name;
    long id;
 
    public Name(String _name,long _id) {
        name  = _name;
        id = _id;
    }
    public String getName(){
        return name;
    }
    public long getId(){
        return id;
    }
    public void setName(String name){
        this.name = name;
    }
    public void setId(long id){
        this.id = id;
    }
}
2) вызывай его экземляр где нада и устанавливай или получай то что нужно

Добавлено через 1 минуту
ответы на твои вопросы:
1) могут
2) я тя не понел
3) константа
4) я не смотрел
Bolbine84455
2 / 2 / 1
Регистрация: 12.03.2014
Сообщений: 298
16.03.2014, 16:36  [ТС]     Передать массив с текстом через интент #3
2 вопрос - я передаю из MainActivity, например, строковую переменную message.
Получается, что в коде-источнике я указываю String message=....; *код с Intent*
В коде приемнике: *код с Intent*;*Код присваивания TextView значения переменной message*; или же сначала надо объявить String message, а затем присвоить этому message значение из message, которое я передаю, а только потом присваивать значение TextView?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2014, 21:14     Передать массив с текстом через интент
Еще ссылки по теме:

Передать через 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...

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

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

Как правильно передать кириллицу через сокеты? - Программирование Android
У меня есть TCP клиент в телефоне и TCP сервер на ноуте. Когда я передаю английские сообщения(символы ASCII) все передается нормально. А...

Передать данные между активити через SharedPreferences - Программирование Android
Ребята помогайте начинающему, в общем есть два активити, из одного активити нужно передать с помощью SharedPreferences данные в другое...


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

Или воспользуйтесь поиском по форуму:
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
16.03.2014, 21:14     Передать массив с текстом через интент #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Bolbine84455 Посмотреть сообщение
Понял, что в коде классе-источнике(MainActivity) надо прописать:
Все правильно
Цитата Сообщение от Bolbine84455 Посмотреть сообщение
, а в классе-приемнике(MapActivity):
Не правильно, вы же хотите извлечь данные из интента который прилетел от MainActivity. Для этого вам нужно внутри метода onCreate получить интент и вытащить из него ваш массив строк:
Java
1
2
3
4
5
6
7
8
        //Получаем интент
        Intent intent = getIntent();
        //Вытаскиваем массив
        String strArray[] = intent.getExtras().getStringArray(EXTRA_MESSAGE);
        //Печатаем в лог все элементы массива
        for (String entry : strArray) { 
            System.out.println(entry);
        }
Цитата Сообщение от Bolbine84455 Посмотреть сообщение
1) Могут ли в разных классах существовать одноименные переменные и не скажется ли это пагубно на приложении?
Да могут. Нет не скажется, но возможно создаст путаницу при чтении кода человеком.
Цитата Сообщение от Bolbine84455 Посмотреть сообщение
2) При передачи данных из класса в класс нужно ли в классе-приемнике создавать переменные для принятия данных?
Сложно сказать, зависит от конкретной задачи.
Цитата Сообщение от Bolbine84455 Посмотреть сообщение
3) Что это за EXTRA_MESSAGE в вышеуказанном коде? Для чего он? П.С. Он подсвечивается красным.
В интент можно вложить некоторые данные (в "классе-источнике") чтобы потом их извлечь (в "классе-приёмнике"). Данных может быть много и они могут быть разными, для того чтоб получить какие-то конкретные данные используются ключи. Ключ это некоторая уникальная строка по которой можно однозначно эти данные идентифицировать. EXTRA_MESSAGE это как раз и есть тот самый ключ, добавьте в оба класса одноименную константу:
Java
1
final String EXTRA_MESSAGE  = "myArray";
Цитата Сообщение от Bolbine84455 Посмотреть сообщение
4) Что не так в этом коде? Объясните технологию работы с Intent.
"Класс-приёмник" не содержит кода который бы обрабатывал интент от "класса-источника"

Если не понятно, то почитайте вот это http://startandroid.ru/ru/uroki/vse-...ju-intent.html
Yandex
Объявления
16.03.2014, 21:14     Передать массив с текстом через интент
Ответ Создать тему
Опции темы

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