Отправка массивов с помощью Intent.putExtra - PullRequest
67 голосов
/ 03 октября 2010

У меня есть массив целых чисел в упражнении A:

int array[] = {1,2,3};

И я хочу отправить эту переменную в упражнение B, поэтому я создаю новое намерение и использую метод putExtra:

Intent i = new Intent(A.this, B.class);
i.putExtra("numbers", array);
startActivity(i);

В упражнении BI получите информацию:

Bundle extras = getIntent().getExtras();
int arrayB = extras.getInt("numbers");

Но на самом деле это не отправка массива, я просто получаю значение '0' в массиве B.Я искал несколько примеров, но ничего не нашел.

Ответы [ 3 ]

85 голосов
/ 03 октября 2010

Вы устанавливаете дополнительные с массивом.Затем вы пытаетесь получить один int.

Ваш код должен быть:

int[] arrayB = extras.getIntArray("numbers");
10 голосов
/ 14 апреля 2015

Этот код отправляет массив целочисленных значений

Инициализировать список массивов

List<Integer> test = new ArrayList<Integer>();

Добавить значения в массив List

test.add(1);
test.add(2);
test.add(3);
Intent intent=new Intent(this, targetActivty.class);

Отправка значений списка массивов целевой операции

intent.putIntegerArrayListExtra("test", (ArrayList<Integer>) test);
startActivity(intent);

здесь вы получите значения для targetActivty

Intent intent=getIntent();
ArrayList<String> test = intent.getStringArrayListExtra("test");
0 голосов
/ 15 августа 2012
final static String EXTRA_MESSAGE = "edit.list.message";

Context context;
public void onClick (View view)
{   
    Intent intent = new Intent(this,display.class);
    RelativeLayout relativeLayout = (RelativeLayout) view.getParent();

    TextView textView = (TextView) relativeLayout.findViewById(R.id.textView1);
    String message = textView.getText().toString();

    intent.putExtra(EXTRA_MESSAGE,message);
    startActivity(intent);
}
...