2010-10-03 67 views
61

發送陣列我有整數的在活動的陣列:與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"); 

但是,這是不是真的發送陣列,我剛剛得到的arrayB上的值爲'0'。我一直在尋找一些例子,但我沒有發現任何東西。

+2

獲取值,我需要的答案是你的問題。這是如何使用'.getExtras()'我需要的。 – MikeyE 2017-04-12 19:42:02

回答

81

您正在設置額外的數組。你然後試圖得到一個int。

你的代碼應該是:

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

哎唷!我專注於putExtra和getExtras語法,我沒有意識到misstake如此明顯:D謝謝! – Kitinz 2010-10-03 11:40:35

+0

@Kitinz +1對社區來說非常好...我喜歡:) – Adnan 2016-01-20 13:27:43

-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

我想你會在看到這個代碼後明白你在哪裏犯過錯誤...... :) – 2012-08-15 04:37:11

+1

顯然不是朋友 – Wadester 2013-06-08 17:39:25

7

該代碼發送整數數組值

初始化數組列表

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"); 
相關問題