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

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

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

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

16.03.2014, 14:23. Просмотров 905. Ответов 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.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2014, 14:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передать массив с текстом через интент (Программирование Android):

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

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

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

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

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

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

3
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) я не смотрел
1
Bolbine84455
4 / 4 / 2
Регистрация: 12.03.2014
Сообщений: 329
16.03.2014, 16:36  [ТС] #3
2 вопрос - я передаю из MainActivity, например, строковую переменную message.
Получается, что в коде-источнике я указываю String message=....; *код с Intent*
В коде приемнике: *код с Intent*;*Код присваивания TextView значения переменной message*; или же сначала надо объявить String message, а затем присвоить этому message значение из message, которое я передаю, а только потом присваивать значение TextView?
0
angryrobot
Командир зеленых роботов
348 / 285 / 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
1
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 информацию об Item - Программирование Android
Выводит ошибку и приложение закрывается by Force Close ошибка по ходу в Intente package kg.aykut.speak_kyrgyz; import...

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


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
16.03.2014, 21:14
Ответ Создать тему
Опции темы

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