Страница 4 из 6

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 10 ноя 2013, 12:56
Foenix
ПОсмотрела ссылку. Ты прости, но еще уточню - мотай вначале лог в самый конец (как только произошла ошибка!) и ищи те красные строчки, которые относятся к ошибке, а ты все целиком скопировал - этого не нужно! Вообще это не так уж и сложно, многие тут вполне осволись со вставкой лога очень быстро.

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 10 ноя 2013, 12:59
Foenix
хотела с твоего лога сюда скопировать твою ошибку, но что-то операция копирования-вставки там не работает, Так что сорри. ТАм у тебя несоответствие текствью (в xml) и едиттекст (в тексте), исправляй.

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 10 ноя 2013, 14:01
Nik
Foenix писал(а):хотела с твоего лога сюда скопировать твою ошибку, но что-то операция копирования-вставки там не работает, Так что сорри. ТАм у тебя несоответствие текствью (в xml) и едиттекст (в тексте), исправляй.
Спасибо милая с меня шоколадка! разобрался в чем проблема. TextView была обозвана как EditText

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 10 ноя 2013, 18:06
Foenix
Nik писал(а):
Foenix писал(а):хотела с твоего лога сюда скопировать твою ошибку, но что-то операция копирования-вставки там не работает, Так что сорри. ТАм у тебя несоответствие текствью (в xml) и едиттекст (в тексте), исправляй.
Спасибо милая с меня шоколадка! разобрался в чем проблема. TextView была обозвана как EditText
Мне очень приятно, даже больше, чем шоколадка!
А то вон помочь стараешься, кто-то еще и нагрубит в ответ.

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 30 апр 2014, 12:17
Ilya_81
Добрый день.

Подскажите, пожалуйста.
Как мне передать коллекцию ("List") с помощью intent?

В jave у меня получается.
..............................................
import java.util.ArrayList;
public class A {

ArrayList<B> b = new ArrayList<B>();
A(){
b.add(new B());
}
}

public class B {
int i;
int u;
B(){
i=2;
u=4;
}
public String toString(){
return String.format(" " + i+ " , " +u+ " " );
}
}

public class C extends A {
C(){
for(B e:b){
System.out.println(e);
}
}
}

public class Main {

public static void main(String[] args) {

new A(); new C();
}
}
.................................................................................
Взял простой пример....

В Android тоже выводится в Log.d(.....) (если в одном классе), а вот через intent - второй класс не видит коллекцию..

Как мне передать всю коллекцию во второй класс. и там уже работать с ней?

Спасибо...

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 30 апр 2014, 12:33
Viewer
Через Intent Extras (ровно как и через Bundle) можно передавать объекты простых типов JAVA а также сериализуемые объекты.
ArrayList тоже можно передавать, но только если он строкового типа ArrayList<String>
Для сериализации в Андроид лучше всего применять интерфейс Parcelable (см. уроки 68 и 69)

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 30 апр 2014, 13:49
Ilya_81
Ок.
Спасибо!

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 02 май 2014, 17:44
fermopili
А как можно передать через Intent группу данных различного типа : int , double и string. Их можно завернуть в class,
class Test
{
int i;
double d;
String s;
}
но как тогда передать class?

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 02 май 2014, 22:39
Leeroy
fermopili писал(а):А как можно передать через Intent группу данных различного типа : int , double и string. Их можно завернуть в class,
class Test
{
int i;
double d;
String s;
}
но как тогда передать class?
http://startandroid.ru/ru/uroki/vse-uro ... ntent.html

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 22 май 2014, 15:16
VovanVovani4
Посдкажите как мне передать массив стрингов из главной активити в другую активити, но без запуска второй, что бы данные были в интенте или бундле, и когда юзер жмакнет на таб этой активити то они будут использоваться.

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 22 май 2014, 23:21
Leeroy
VovanVovani4 писал(а):Посдкажите как мне передать массив стрингов из главной активити в другую активити, но без запуска второй, что бы данные были в интенте или бундле, и когда юзер жмакнет на таб этой активити то они будут использоваться.
без запуска второй активити? попробуй объявить массив как статик или используй parcelable или может через фрагмент

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 23 май 2014, 11:49
VovanVovani4
Leeroy писал(а): без запуска второй активити? попробуй объявить массив как статик или используй parcelable или может через фрагмент
У меня в прилож. главная активити состоит из табов, а табы из активити. При создании главной активи я парсю файл и данные из него хочу передать в дочерние активити(табы), но только когда таб с дочерней активити будет выбран.
1)
В главной активити вот такой код был:

Код: Выделить всё

Intent intent = new Intent(this, TotalActivity.class);
Bundle bundle = new Bundle();
bundle.putStringArray("RATE", array);
intent.putExtras(bundle);
В активити для которой данные:

Код: Выделить всё

Bundle bundle = getIntent().getExtras();
int i=0;
while(i<6){
 valute[i]=bundle.getStringArray("RATE")[i];
i++;
}
2)
Я еще нашел в инетах вот такое вот, для главной:

Код: Выделить всё

Intent intent = new Intent();
 Bundle bundle = intent.getExtras();
 bundle.putStringArray("RATE", array);
В активити для которой данные:

Код: Выделить всё

Bundle bundle = getIntent().getExtras();
int i=0;
while(i<6){
array[i]=bundle.getStringArray("RATE")[i];
i++;
}
В обоих вариантах был nullpointerexception.

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 23 май 2014, 11:55
klblk
Самое время отказаться от активити в табах и перейти на фрагменты.

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 18 июн 2014, 10:24
IceBlast
Доброго времени суток! Подскажите пожалуйста, как передать во вторую активность двумерный массив?
int[][] deep = new int[lmax][amax];
Если можно, пример передачи и приема. Заранее спасибо.

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 16 июл 2014, 21:48
Don77
IceBlast писал(а):Доброго времени суток! Подскажите пожалуйста, как передать во вторую активность двумерный массив?
int[][] deep = new int[lmax][amax];
Если можно, пример передачи и приема. Заранее спасибо.
У меня есть только один вариант - Передавать каждый столбец отдельно, с помощью метода getIntArrayExtra собирать их в другой активити. Другими словами - свой двумерный массив, в цикле, разделяешь на подмассивы, соответственно каждый из них добавляешь методом putExtra класса Intent. И уже в другой активити, собираешь их в двумерный массив. Как-то так )

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 03 авг 2014, 10:31
IceBlast
Don77, спасибо за идею, буду пробовать. Хотя как-то громоздко, но других вариантов я не знаю. Еще раз спасибо!

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 16 сен 2014, 18:15
0800009
А почему нельзя обойтись статическими классами для передачи данных между активити?
Вернее полями и методами.

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 15 ноя 2014, 22:03
kotr
Здравствуйте.

Есть задача: открывать файл *.html из папки raw в webview по тапу на пункт в listview. Имеется 10 файлов. По неопытности я начал создавать для каждого файла отдельный Activity. В процессе работы понял, что приложение нужно упрощать. Но не могу сообразить как реализовать следующую схему: сделать два Activity (в одном будет listview, в другом webview); при выборе в Activity1 пункта "3" открывается Activity2 с webview, в котором открывается файл 3.html (соответственно любой пункт "х" приводил бы к открытию соответствующего ему файла х.html).

Подскажите пожалуйста, каким образом можно реализовать такую схему.


MainActivity.java
[syntax=java]
package com.example.listweb;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

ListView lvnames;
String[] names;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

lvnames = (ListView) findViewById(R.id.lvnames);

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.names,
android.R.layout.simple_list_item_1);
lvnames.setAdapter(adapter);


lvnames.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {

Intent i = new Intent(getBaseContext(), WebViewActivity.class);
i.putExtra("names", position);
startActivity(i);
}
}
);
}
}


[/syntax]

strings.xml
[syntax=java]<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">listweb</string>
<string name="hello_world">Hello world!</string>
<string-array name="names">
<item>Иван</item>
<item>Марья</item>
<item>Петр</item>
<item>Антон</item>
<item>Даша</item>
<item>Борис</item>
<item>Костя</item>
<item>Игорь</item>
<item>Анна</item>
<item>Денис</item>
<item>Вадим</item>
<item>Ольга</item>
<item>Сергей</item>
</string-array>

</resources>
[/syntax]

WebViewActivity не выкладываю, поскольку там пока ничего нет - не могу сообразить как принять и обработать массив из strings.xml

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 15 ноя 2014, 23:11
doter.ua
kotr
передавай в интенте номер нажатого элемента (position кажется)

Re: Урок 28. Extras - передаем данные с помощью Intent

Добавлено: 15 янв 2015, 22:42
Fry
Возник вопрос, решил его тут задать.

Вот у Активити ведь конструктор, который можно перегружать - так? Его можно использовать для передачи вообще любых данных. Например, для передачи объектов напрямую без заморочек с Parcelable.

Соответственно, в каких случаях можно так передавать данные, а в каких случах без putExtra не обойтись?