2013-03-03 111 views
1

我有兩個按鈕調用相同的Map活動。但是,根據點擊哪個按鈕,在新活動中執行的操作會有所不同。在我的MyMapsActivity中,如何檢查哪個意圖激發了新活動?我對Android編程比較陌生,所以我不確定這樣做是否正確。如何檢查在新活動中啓動了哪個按鈕?

case (R.id.location_button1): 
    Intent intent1 = new Intent(getApplicationContext(), 
      MyMapsActivity.class); 
    startActivity(intent1); 
    break; 

case (R.id.location_button1): 
    Intent intent2 = new Intent(getApplicationContext(), 
      MyMapsActivity.class); 
    intent2.putExtra("address", address); 
    startActivity(intent2); 
    break; 

回答

1

既然你已經有了一個「額外」的意圖,你可以用它來區分它們。

在你的MyMapsActivity只是意圖與getIntent(),然後檢查是否存在「地址」。

Intent該文檔解釋瞭如何獲取和設置額外設備和這樣的:http://developer.android.com/reference/android/content/Intent.html

+0

謝謝你,我知道了!它非常簡單! – Sammys 2013-03-04 00:04:15

+0

@kavya這是正確的。但你應該使用['setAction()'](http://developer.android.com/reference/android/content/Intent.html#setAction(java.lang.String))/ ['getAction()']( http://developer.android.com/reference/android/content/Intent.html#getAction())來區分操作。額外是每個動作的附加數據。 – 2013-03-04 00:42:04

+0

@Lai Vung,是的,隱式意圖使用動作/數據/類別來解決問題,意圖/意圖過濾解決方案還有很多(因此我將文檔鏈接起來),但在這種情況下,我們正在討論顯式意圖並保留它很簡單。 – 2013-03-04 01:08:50

相關問題