Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 25 фев 2017, 13:10

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 112 ]  На страницу 1, 2, 3, 4, 5, 6  След.
Автор Сообщение
СообщениеДобавлено: 27 окт 2011, 04:00 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 12:32
Сообщений: 1319
Благодарил (а): 0 раз.
Поблагодарили: 69 раз.
В этом уроке:

- передаем данные с помощью Intent

Click here to read this article!

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Последний раз редактировалось damager82 22 дек 2016, 16:23, всего редактировалось 5 раз(а).

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 12 янв 2012, 15:35 

Зарегистрирован: 12 янв 2012, 15:29
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте. Подскажите пожалуйста, никак не могу понять и хелп тоже не спас. Если за место String, я хочу передать другой тип данных, например int number1=0; как это организовать?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 12 янв 2012, 15:52 
Аватар пользователя

Зарегистрирован: 11 янв 2012, 12:02
Сообщений: 29
Откуда: Belarus
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
VitaMin00 писал(а):
Здравствуйте. Подскажите пожалуйста, никак не могу понять и хелп тоже не спас. Если за место String, я хочу передать другой тип данных, например int number1=0; как это организовать?

Просто вместо putString() используешь метод putInt()

_________________
--[+++++++<---->>-->+>+>+<<<<]
<.>++++[-<++++<++>>>->--<<]>>-.>--..>+.<<<.<<-.>>+>->>.+++[.<]<<++.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 12 янв 2012, 22:31 

Зарегистрирован: 12 янв 2012, 15:29
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
вот:
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnActTwo:
Intent intent = new Intent(this, ActivityTwo.class);
intent.putExtra("lname", tvOut.getText().toString()); --------- тут хватаю string из textView под id tvOut.
intent.putExtra("intn1", number1); -----правильно беру int ( int number1=2) ???
startActivity(intent);
break;
------
String LName = intent.getStringExtra("lname");
int number0 = intent....... что я тут должен написать?

tv0102.setText(" бла бла бла "+ LName+ number0);


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 13 янв 2012, 00:16 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 12:32
Сообщений: 1319
Благодарил (а): 0 раз.
Поблагодарили: 69 раз.
VitaMin00 писал(а):
вот:
int number0 = intent....... что я тут должен написать?


Метод getIntExtra (http://developer.android.com/reference/android/content/Intent.html#getIntExtra(java.lang.String,%20int))
Там задаете ваш ключ "intn1" и значение по умолчанию, например 0.

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 13 янв 2012, 09:50 

Зарегистрирован: 12 янв 2012, 15:29
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Всё сработало, спасибо большое ;-)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 17 фев 2012, 12:51 

Зарегистрирован: 17 фев 2012, 12:43
Сообщений: 3
Откуда: Питер
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Спасибо за урок.
Может это немного не в контексте обсуждаемого в уроке, но подскажите:
Как в реальных приложениях на Android принято с этими переменными обращаться

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. intent.putExtra("fname", etFName.getText().toString());
  2. intent.putExtra("lname", etLName.getText().toString());


Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. String fname = intent.getStringExtra("fname");
  2. String lname = intent.getStringExtra("lname");


не будешь же всегда помнить, что передаешь "fname", к примеру.
static final переменные создаются в том Activity, которое передает переменные или как-то по-другому принято?

Спасибо!!!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 17 фев 2012, 14:35 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 12:32
Сообщений: 1319
Благодарил (а): 0 раз.
Поблагодарили: 69 раз.
Я не встречал чего-то общепринятого.

Сейчас, например, пишу приложение и все такие static final переменные храню просто в отдельном классе Common.

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 31 мар 2012, 14:57 
Аватар пользователя

Зарегистрирован: 30 мар 2012, 11:20
Сообщений: 17
Откуда: Камчатка
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Цитата:
Сейчас, например, пишу приложение и все такие static final переменные храню просто в отдельном классе Common.


А как потом подключаете этот класс и используете его переменные, расскажите пожалуйста с примером кода.

_________________
Разработка сайтов любой сложности.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 31 мар 2012, 16:46 
Аватар пользователя

Зарегистрирован: 30 мар 2012, 11:20
Сообщений: 17
Откуда: Камчатка
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Всё сделал как в вашем уроке, но мне null приходит, в чём может быть проблема?

_________________
Разработка сайтов любой сложности.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 31 мар 2012, 23:42 
Аватар пользователя

Зарегистрирован: 13 янв 2012, 18:56
Сообщений: 219
Благодарил (а): 3 раз.
Поблагодарили: 6 раз.
chuikoff писал(а):
Всё сделал как в вашем уроке, но мне null приходит, в чём может быть проблема?

в ошибочном коде. Выложите, сразу станет ясно


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 01 апр 2012, 04:45 
Аватар пользователя

Зарегистрирован: 30 мар 2012, 11:20
Сообщений: 17
Откуда: Камчатка
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
andev писал(а):
chuikoff писал(а):
Всё сделал как в вашем уроке, но мне null приходит, в чём может быть проблема?

в ошибочном коде. Выложите, сразу станет ясно


KamchatkaActivity.java:

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. public class KamchatkaActivity extends Activity implements OnClickListener {
  2.        
  3.         EditText request;
  4.         Button search;
  5.        
  6.         /** Вызываем при загрузке. */
  7.     @Override
  8.     public void onCreate(Bundle savedInstanceState) {
  9.         super.onCreate(savedInstanceState);
  10.         setContentView(R.layout.main);
  11.        
  12.         request = (EditText) findViewById(R.id.editText1);
  13.         search = (Button) findViewById(R.id.button1);
  14.         search.setOnClickListener(this);
  15.     }
  16.    
  17.     /** Запускаем при клике поиск. */
  18.     public void onClick(View v)
  19.     {
  20.         Intent i = new Intent(this, Search.class);
  21.         i.putExtra("request", request.getText()).toString();
  22.         startActivity(i);
  23.     }
  24. }
  25.  


Search.java:

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. public class Search extends Activity {
  2.         /** Вызываем при загрузке. */
  3.         @Override
  4.         public void onCreate(Bundle savedInstantState){
  5.                 super.onCreate(savedInstantState);
  6.                 setContentView(R.layout.search);
  7.                
  8.                 Intent intent = getIntent();
  9.                
  10.                 TextView title = (TextView)findViewById(R.id.title);
  11.                
  12.                 String request = intent.getStringExtra("request");
  13.                 title.setText("Поиск: "+request);
  14.         }
  15.  
  16. }
  17.  


Вот.

_________________
Разработка сайтов любой сложности.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 01 апр 2012, 12:43 
Аватар пользователя

Зарегистрирован: 13 янв 2012, 18:56
Сообщений: 219
Благодарил (а): 3 раз.
Поблагодарили: 6 раз.
У вас скобка не там, вы не тест кладете, а объект, естественно там Null

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. // у вас
  2. i.putExtra("request", request.getText()).toString();
  3. // нужно
  4. i.putExtra("request", request.getText().toString());
  5.  


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 апр 2012, 11:12 
Аватар пользователя

Зарегистрирован: 30 мар 2012, 11:20
Сообщений: 17
Откуда: Камчатка
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Спасибо!)

_________________
Разработка сайтов любой сложности.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 июн 2012, 10:21 

Зарегистрирован: 05 июн 2012, 16:09
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Доброго времени суток!
Проблема такая, нужно передать внутри Intent данные из ArrayList<String>. Но так, чтобы все данные отобразились во втором Activity сразу. Пыталась сделать это так:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. package ru.startandroid.develop.myproject_01;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import android.app.Activity;
  6. import android.content.Intent;
  7. import android.os.Bundle;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.widget.Button;
  11.  
  12. public class MainActivity extends Activity implements OnClickListener {
  13.  
  14.         Button b1;
  15.         ArrayList<String> aList;
  16.  
  17.         /** Called when the activity is first created. */
  18.         @Override
  19.         public void onCreate(Bundle savedInstanceState) {
  20.                 super.onCreate(savedInstanceState);
  21.                 setContentView(R.layout.main);
  22.                 aList = new ArrayList<String>();
  23.                 for (int i = 0; i < 7; i++) {
  24.                         aList.add(Integer.toString(i));
  25.                 }
  26.                 b1 = (Button) findViewById(R.id.b1);
  27.                 b1.setOnClickListener(this);
  28.         }
  29.  
  30.         @Override
  31.         public void onClick(View v) {
  32.                 Intent intent = new Intent(this, TwoActivity.class);
  33.                 for (int j = 0; j < 7; j++) {
  34.                         intent.putExtra("list", aList.get(j));
  35.                 }
  36.                 startActivity(intent);
  37.  
  38.         }
  39. }
  40.  

Но при такой передаче запоминается только последняя запись, которая и отображается во втором Activity.
Если метод startActivity(intent); засунуть в цикл, то открывается семь Activity, что вполне логично. Я понимаю, что мой вопрос глупый, но как это сделать? Как реализовать передачу ArrayList'а?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 июн 2012, 11:49 

Зарегистрирован: 31 май 2012, 00:06
Сообщений: 41
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Способ быстрый, но не правильный:

Код: [ Загрузить ] [ Скрыть ]
Using Text Syntax Highlighting
  1. intent.putExtra("List_size", aList.size());
  2. for(int i=0; i<aList.size();i++){
  3.       intent.putExtra("list_"+Integer.toString(i), aList.get(i));
  4. }

Почему неправильный?
1) существует вероятность пересечения имен с другими массивами
2) Если надо передать свой тип, то используйте (желательно) возможности Parsable
3) Если надо передать массив простых значений, к которому относится же и String, то у интента есть метод

putExtra(String _key, String[] _values)
И в вашем случае можно сделать просто
Код: [ Загрузить ] [ Скрыть ]
Using Text Syntax Highlighting
  1. String[] array = (String[]) aList.toArray();
  2. intent.putExtra("List_array", array);


Цитата:
Но при такой передаче запоминается только последняя запись, которая и отображается во втором Activity.

Ясен пень, что отображаться будет только одна.
Хеш таблица - это массив с произвольным ключом, если в двух словах.

Если Вы сделаете так: (псевдокод)
data["a"] = "1";
data["a"] = "2";
data["a"] = "3";

то в конце data["a"] будет содержать значение "3".
Каждый вызов putExtra("list", "something"); ложит в ячейку "list" соответствуещее значение, затирая предыдущее, если оно конечно там было.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 июн 2012, 12:47 

Зарегистрирован: 05 июн 2012, 16:09
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Спасибо большое. То, что надо :)

Prospekt писал(а):
3) Если надо передать массив простых значений, к которому относится же и String, то у интента есть метод

putExtra(String _key, String[] _values)
И в вашем случае можно сделать просто
Код: [ Загрузить ] [ Скрыть ]
Using Text Syntax Highlighting
  1. String[] array = (String[]) aList.toArray();
  2. intent.putExtra("List_array", array);


Это верно, можно сделать и проще, но задача была именно такая - передать ArrayList.
Благодарю за помощь!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 июл 2012, 16:15 

Зарегистрирован: 16 июл 2012, 16:09
Сообщений: 26
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
мне нужно передать картинку для imagebutton, тоесть нажимаем на кнопку, выбираем картинку, возвращаемся с результатом и присваиваем эту картинку ImageButton'у. Какой тип данных для этого использовать?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 17 июл 2012, 12:16 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 12:32
Сообщений: 1319
Благодарил (а): 0 раз.
Поблагодарили: 69 раз.
Artemko писал(а):
мне нужно передать картинку для imagebutton, тоесть нажимаем на кнопку, выбираем картинку, возвращаемся с результатом и присваиваем эту картинку ImageButton'у. Какой тип данных для этого использовать?


Правильнее передавать не саму картинку, а ее адрес картинки в проекте/файловой системе/контенте.
Если картинка из инета, то при первом скачивании сохраняете куда-нить, и опять же этот адрес и передаете в Intent.

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 18 июл 2012, 10:35 

Зарегистрирован: 16 июл 2012, 16:09
Сообщений: 26
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
как правильно передать адрес картинки, которая находится в проекте и потом присвоить? Можно пример плиз)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 112 ]  На страницу 1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 4 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB