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

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

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

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

16.03.2014, 14:23. Просмотров 860. Ответов 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 Как передать картинку через интент
Android Использование интент фильтра
Передать файл через socket или через ftp api Android
В одном фрагменте запустить интент - во втором поймать его Android
Передает ли Input Method Service какой либо интент Android
Android Можно ли написать интент на приглашение в друзья или в группу фейсбука
Передать через intent VIEW Android
Android Как передать ссылку через Intent
Android Передать ссылку на класс через Intent
Android Передать через Intent информацию об Item
Android Как правильно передать кириллицу через сокеты?
Передать данные между активити через SharedPreferences 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?
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