Урок 28. Extras - передаем данные с помощью Intent
Урок 28. Extras - передаем данные с помощью Intent
Последний раз редактировалось damager82 29 апр 2017, 19:00, всего редактировалось 6 раз.
Re: Урок 28. Extras - передаем данные с помощью Intent
Здравствуйте. Подскажите пожалуйста, никак не могу понять и хелп тоже не спас. Если за место String, я хочу передать другой тип данных, например int number1=0; как это организовать?
Re: Урок 28. Extras - передаем данные с помощью Intent
Просто вместо putString() используешь метод putInt()VitaMin00 писал(а):Здравствуйте. Подскажите пожалуйста, никак не могу понять и хелп тоже не спас. Если за место String, я хочу передать другой тип данных, например int number1=0; как это организовать?
--[+++++++<---->>-->+>+>+<<<<]
<.>++++[-<++++<++>>>->--<<]>>-.>--..>+.<<<.<<-.>>+>->>.+++[.<]<<++.
<.>++++[-<++++<++>>>->--<<]>>-.>--..>+.<<<.<<-.>>+>->>.+++[.<]<<++.
Re: Урок 28. Extras - передаем данные с помощью Intent
вот:
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);
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);
Re: Урок 28. Extras - передаем данные с помощью Intent
Метод getIntExtra (http://developer.android.com/reference/ ... ng,%20int))VitaMin00 писал(а):вот:
int number0 = intent....... что я тут должен написать?
Там задаете ваш ключ "intn1" и значение по умолчанию, например 0.
Re: Урок 28. Extras - передаем данные с помощью Intent
Всё сработало, спасибо большое
Re: Урок 28. Extras - передаем данные с помощью Intent
Спасибо за урок.
Может это немного не в контексте обсуждаемого в уроке, но подскажите:
Как в реальных приложениях на Android принято с этими переменными обращаться
не будешь же всегда помнить, что передаешь "fname", к примеру.
static final переменные создаются в том Activity, которое передает переменные или как-то по-другому принято?
Спасибо!!!
Может это немного не в контексте обсуждаемого в уроке, но подскажите:
Как в реальных приложениях на Android принято с этими переменными обращаться
Код: Выделить всё
intent.putExtra("fname", etFName.getText().toString());
intent.putExtra("lname", etLName.getText().toString());
Код: Выделить всё
String fname = intent.getStringExtra("fname");
String lname = intent.getStringExtra("lname");
static final переменные создаются в том Activity, которое передает переменные или как-то по-другому принято?
Спасибо!!!
Re: Урок 28. Extras - передаем данные с помощью Intent
Я не встречал чего-то общепринятого.
Сейчас, например, пишу приложение и все такие static final переменные храню просто в отдельном классе Common.
Сейчас, например, пишу приложение и все такие static final переменные храню просто в отдельном классе Common.
Re: Урок 28. Extras - передаем данные с помощью Intent
А как потом подключаете этот класс и используете его переменные, расскажите пожалуйста с примером кода.Сейчас, например, пишу приложение и все такие static final переменные храню просто в отдельном классе Common.
Разработка сайтов любой сложности.
Re: Урок 28. Extras - передаем данные с помощью Intent
Всё сделал как в вашем уроке, но мне null приходит, в чём может быть проблема?
Разработка сайтов любой сложности.
Re: Урок 28. Extras - передаем данные с помощью Intent
в ошибочном коде. Выложите, сразу станет ясноchuikoff писал(а):Всё сделал как в вашем уроке, но мне null приходит, в чём может быть проблема?
Re: Урок 28. Extras - передаем данные с помощью Intent
KamchatkaActivity.java:andev писал(а):в ошибочном коде. Выложите, сразу станет ясноchuikoff писал(а):Всё сделал как в вашем уроке, но мне null приходит, в чём может быть проблема?
Код: Выделить всё
public class KamchatkaActivity extends Activity implements OnClickListener {
EditText request;
Button search;
/** Вызываем при загрузке. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
request = (EditText) findViewById(R.id.editText1);
search = (Button) findViewById(R.id.button1);
search.setOnClickListener(this);
}
/** Запускаем при клике поиск. */
public void onClick(View v)
{
Intent i = new Intent(this, Search.class);
i.putExtra("request", request.getText()).toString();
startActivity(i);
}
}
Код: Выделить всё
public class Search extends Activity {
/** Вызываем при загрузке. */
@Override
public void onCreate(Bundle savedInstantState){
super.onCreate(savedInstantState);
setContentView(R.layout.search);
Intent intent = getIntent();
TextView title = (TextView)findViewById(R.id.title);
String request = intent.getStringExtra("request");
title.setText("Поиск: "+request);
}
}
Разработка сайтов любой сложности.
Re: Урок 28. Extras - передаем данные с помощью Intent
У вас скобка не там, вы не тест кладете, а объект, естественно там Null
Код: Выделить всё
// у вас
i.putExtra("request", request.getText()).toString();
// нужно
i.putExtra("request", request.getText().toString());
Re: Урок 28. Extras - передаем данные с помощью Intent
Доброго времени суток!
Проблема такая, нужно передать внутри Intent данные из ArrayList<String>. Но так, чтобы все данные отобразились во втором Activity сразу. Пыталась сделать это так:
Но при такой передаче запоминается только последняя запись, которая и отображается во втором Activity.
Если метод startActivity(intent); засунуть в цикл, то открывается семь Activity, что вполне логично. Я понимаю, что мой вопрос глупый, но как это сделать? Как реализовать передачу ArrayList'а?
Проблема такая, нужно передать внутри Intent данные из ArrayList<String>. Но так, чтобы все данные отобразились во втором Activity сразу. Пыталась сделать это так:
Код: Выделить всё
package ru.startandroid.develop.myproject_01;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
Button b1;
ArrayList<String> aList;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
aList = new ArrayList<String>();
for (int i = 0; i < 7; i++) {
aList.add(Integer.toString(i));
}
b1 = (Button) findViewById(R.id.b1);
b1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(this, TwoActivity.class);
for (int j = 0; j < 7; j++) {
intent.putExtra("list", aList.get(j));
}
startActivity(intent);
}
}
Если метод startActivity(intent); засунуть в цикл, то открывается семь Activity, что вполне логично. Я понимаю, что мой вопрос глупый, но как это сделать? Как реализовать передачу ArrayList'а?
Re: Урок 28. Extras - передаем данные с помощью Intent
Способ быстрый, но не правильный:
Почему неправильный?
1) существует вероятность пересечения имен с другими массивами
2) Если надо передать свой тип, то используйте (желательно) возможности Parsable
3) Если надо передать массив простых значений, к которому относится же и String, то у интента есть метод
putExtra(String _key, String[] _values)
И в вашем случае можно сделать просто
Хеш таблица - это массив с произвольным ключом, если в двух словах.
Если Вы сделаете так: (псевдокод)
data["a"] = "1";
data["a"] = "2";
data["a"] = "3";
то в конце data["a"] будет содержать значение "3".
Каждый вызов putExtra("list", "something"); ложит в ячейку "list" соответствуещее значение, затирая предыдущее, если оно конечно там было.
Код: Выделить всё
intent.putExtra("List_size", aList.size());
for(int i=0; i<aList.size();i++){
intent.putExtra("list_"+Integer.toString(i), aList.get(i));
}
1) существует вероятность пересечения имен с другими массивами
2) Если надо передать свой тип, то используйте (желательно) возможности Parsable
3) Если надо передать массив простых значений, к которому относится же и String, то у интента есть метод
putExtra(String _key, String[] _values)
И в вашем случае можно сделать просто
Код: Выделить всё
String[] array = (String[]) aList.toArray();
intent.putExtra("List_array", array);
Ясен пень, что отображаться будет только одна.Но при такой передаче запоминается только последняя запись, которая и отображается во втором Activity.
Хеш таблица - это массив с произвольным ключом, если в двух словах.
Если Вы сделаете так: (псевдокод)
data["a"] = "1";
data["a"] = "2";
data["a"] = "3";
то в конце data["a"] будет содержать значение "3".
Каждый вызов putExtra("list", "something"); ложит в ячейку "list" соответствуещее значение, затирая предыдущее, если оно конечно там было.
Re: Урок 28. Extras - передаем данные с помощью Intent
Спасибо большое. То, что надо
Благодарю за помощь!
Это верно, можно сделать и проще, но задача была именно такая - передать ArrayList.Prospekt писал(а): 3) Если надо передать массив простых значений, к которому относится же и String, то у интента есть метод
putExtra(String _key, String[] _values)
И в вашем случае можно сделать простоКод: Выделить всё
String[] array = (String[]) aList.toArray(); intent.putExtra("List_array", array);
Благодарю за помощь!
Re: Урок 28. Extras - передаем данные с помощью Intent
мне нужно передать картинку для imagebutton, тоесть нажимаем на кнопку, выбираем картинку, возвращаемся с результатом и присваиваем эту картинку ImageButton'у. Какой тип данных для этого использовать?
Re: Урок 28. Extras - передаем данные с помощью Intent
Правильнее передавать не саму картинку, а ее адрес картинки в проекте/файловой системе/контенте.Artemko писал(а):мне нужно передать картинку для imagebutton, тоесть нажимаем на кнопку, выбираем картинку, возвращаемся с результатом и присваиваем эту картинку ImageButton'у. Какой тип данных для этого использовать?
Если картинка из инета, то при первом скачивании сохраняете куда-нить, и опять же этот адрес и передаете в Intent.
Re: Урок 28. Extras - передаем данные с помощью Intent
как правильно передать адрес картинки, которая находится в проекте и потом присвоить? Можно пример плиз)