2013-10-19 62 views
0

我有3 Activitys訪問從兩個不同的活性具有不同putextra活性

  • 活動1想要通過putextra發送3項活動3
  • 活動2希望通過putextra發送2個項目到活動3

正如你看到的這些活動1和2發送不同的項目到活動3

我想知道的是有可能做到這一點還是不 如果可能的話,請告訴我怎麼...

活動1:

Intent in = new Intent(getApplicationContext(),Activity3.class); 
in.putExtra("OrderID", tvOrderID.getText().toString()); 
in.putExtra("OrderSHOPNAME", tvShopName.getText().toString()); 

活性2:

Intent in = new Intent(getApplicationContext(),Activity3.class); 
in.putExtra("OrderQTY", tvOrderID.getText().toString()); 
in.putExtra("OrderCOLORNAME", tvShopName.getText().toString()); 

Activity3: ?????我應該在這裏獲得額外的什麼?

,你可以看到有四個不同的putextra

是有可能提及的活動發送putextra?

+0

請提供更多詳情。代碼示例會很好,所以我們可以知道你正在嘗試做什麼。另外,使用標點符號。 –

+0

確實有可能,沒有什麼特別的。繼續嘗試吧,如果遇到問題,請在這裏提出一個更詳細的問題,說明你嘗試了什麼,哪些不能按預期工作。 – janos

回答

1

對於可以添加到意向附加組件的元素數量沒有限制。另外,如果不同的活動添加不同數量的元素,如果通過重複使用Intent保持不變,則無關緊要。這是因爲Intent extras使用的是Bundle,而這只是一個HashMap。

我假設有2個不同的意圖。 Activity1或Activity2啓動Activity3。這樣,您應該向意圖添加一些指標,以檢查哪個Activity稱爲Activity3。在此基礎上讀取數據以避免NPE和不必要的數據分配。

// in Activity1 or 2 
Intent i = new Intent(this, Activity3.class); 
i.putExtra("Activity", 1); 
i.putExtra("foo", "bar"); // repeat this line as you like 
startActivity(i) 

// in Activity3 
Intent i = getIntent(); 
String s; 
switch(i.getIntExtra("Activity")) { 
case 1: 
    // get the data of Activity1 
    s = i.getStringExtra("foo"); 
    break; 
case 2: 
    // get the data of Activity2 
    break; 
} 
+0

看起來很有趣......你能否給我提供一些簡單的代碼? –

+0

@HosseinMansouri編輯我的答案。 –

+0

感謝史蒂夫 –

0

這是可能的extra功能。

送東西給其他活動使用.putExtra

: 從activity 1送東西給activity 3你做:

Intent i = new Intent(Activity1.this,Activity3.class); 
    //"" is name of extra thing (field) 
    //and after the comma is the item 
    i.putExtra("myname", "ahmed"); 
    startActivity(i); 

所以現在我們發出了一個名爲myname的事情,這是ahmed

然後Activity3我們通過getIntent();

Intent intent = getIntent(); 

得到的東西,然後分配的東西,就像如果有人喜歡我們的情況下(艾哈邁德)我們做,:

//the between "" is the field name we retrieved from acitvity1 
String name = intent.getStringExtra("myname"); 

一個字符串,因此現在String name的值將是ahmed

相關問題