2010-10-03 15 views
61

Tôi có một mảng các số nguyên trong hoạt động A:mảng Sending với Intent.putExtra

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

Và tôi muốn gửi biến đó để hoạt động B, vì vậy tôi tạo ra một ý định mới và sử dụng phương pháp putExtra :

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

Trong hoạt động BI nhận được thông tin:

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

Nhưng điều này là không thực sự gửi mảng, tôi chỉ nhận được giá trị '0' trên mảngB. Tôi đã tìm kiếm một số ví dụ nhưng tôi đã không tìm thấy bất cứ điều gì như vậy.

+2

Câu trả lời tôi cần là trong câu hỏi của bạn. Đó là cách sử dụng '.getExtras()' mà tôi cần. – MikeyE

Trả lời

81

Bạn đang đặt thêm với một mảng. Sau đó bạn đang cố gắng để có được một int duy nhất.

Mã của bạn nên là:

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

Ouch! Tôi đã tập trung vào cú pháp putExtra và getExtras mà tôi đã không nhận ra sự sai lầm quá rõ ràng: D Cảm ơn bạn! – Kitinz

+0

@Kitinz +1 để được rất tốt đẹp trên cộng đồng ... Tôi thích điều đó :) – 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

tôi nghĩ bạn sẽ biết sau khi nhìn thấy mã này mà bạn đã làm sai rồi ...... :) –

+1

hiển nhiên không phải bạn – Wadester

7

Mã này gửi mảng các số nguyên giá trị

Initialize Danh sách mảng

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

Thêm giá trị vào danh sách mảng

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

Gửi các giá trị danh sách mảng hoạt động nhắm mục tiêu

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

đây bạn sẽ có được giá trị trên targetActivty

Intent intent=getIntent(); 
ArrayList<String> test = intent.getStringArrayListExtra("test"); 
Các vấn đề liên quan