Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Bolbine84455
5 / 5 / 3
Регистрация: 12.03.2014
Сообщений: 334
#1

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

16.03.2014, 14:23. Просмотров 1012. Ответов 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):

Как передать картинку через интент
Как передать картинку которая есть в drawable через интент в другое...

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

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

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

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

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

3
kirawa
34 / 34 / 1
Регистрация: 12.11.2013
Сообщений: 341
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
5 / 5 / 3
Регистрация: 12.03.2014
Сообщений: 334
16.03.2014, 16:36  [ТС] #3
2 вопрос - я передаю из MainActivity, например, строковую переменную message.
Получается, что в коде-источнике я указываю String message=....; *код с Intent*
В коде приемнике: *код с Intent*;*Код присваивания TextView значения переменной message*; или же сначала надо объявить String message, а затем присвоить этому message значение из message, которое я передаю, а только потом присваивать значение TextView?
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
16.03.2014, 21:14 #4
Лучший ответ Сообщение было отмечено Bolbine84455 как решение

Решение

Цитата Сообщение от 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
Как можно через intent передать &quot;VIEW&quot;, полученное вот таким способом: View...

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

Передать через Intent информацию об Item
Выводит ошибку и приложение закрывается by Force Close ошибка по ходу в...

Как передать ссылку через Intent
Как можно в такой класс package app.kray.anddev; import...


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

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

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