Отправка массивов с намерением.putExtra
У меня есть массив целых чисел в действии A:
int array[] = {1,2,3};
И я хочу отправить эту переменную в действие B, поэтому я создаю новое намерение и использую метод putExtra:
Intent i = new Intent(A.this, B.class);i.putExtra("numbers", array);startActivity(i);
В действии B я получаю информацию:
Bundle extras = getIntent().getExtras();int arrayB = extras.getInt("numbers");
Но на самом деле это не отправка массива, я просто получаю значение '0' в arrayB. Я искал несколько примеров, но ничего такого не нашел.
Переведено автоматически
Ответ 1
Вы устанавливаете extra с помощью массива. Затем вы пытаетесь получить один int .
Ваш код должен быть:
int[] arrayB = extras.getIntArray("numbers");
Ответ 2
Этот код отправляет массив целочисленных значений
Инициализировать список массивов
List<Integer> test = new ArrayList<Integer>();
Добавление значений в список массивов
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");
Ответ 3
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);}