2010-10-03 5 views
61

У меня есть массив целых чисел в деятельности A:Передача массивов с Intent.putExtra

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. Я искал несколько примеров, но я ничего не нашел.

+2

Ответ мне нужен был в вашем вопросе. Это было как использовать '.getExtras()' мне нужно. – MikeyE

ответ

81

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

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

int[] arrayB = extras.getIntArray("numbers"); 
+4

Ой! Я был сосредоточен на синтаксисе putExtra и getExtras, что я не понял, что это было так очевидно: D Спасибо! – Kitinz

+0

@Kitinz +1 для того, чтобы быть очень приятным в сообществе ... Мне понравилось :) – Adnan

-2
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); 
} 
+1

Я думаю, что вы узнаете, увидев этот код, где вы сделали ошибку ...... :) –

+1

очевидно не приятель – Wadester

7

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

Initialize Список массив

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"); 
Смежные вопросы