2013-03-03 114 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

相关问题