如何使用新旗帜开始活动?我有2个活动。一个是主要的,另一个用于在ListView
中显示数据库。它由地址和(纬度,经度)值组成。我正在尝试每当我点击一个项目控件时应该转到主要活动并在地图上显示那个(纬度,经度)值。我在一个包中传递了(纬度,经度)值,并在主活动中写了set()
来设置(lat,lon)值。但主要活动是在后台运行。我在第二个活动中的代码是:
Intent i1=new Intent(Display.this,Cortes.class);
Bundle b11=new Bundle();
b11.putDouble(q, b1);
b11.putDouble(r, c1);
//b11.putBoolean("flag", flag);
i1.putExtras(b11);
i1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i1);
此处b1,c1是(纬度,经度)值,Cortes
是主要活动,Display
是第二活动。我在主要活动中的代码是:
public void set()
{
bun=getIntent().getExtras();
q=bun.getDouble("q");
r=bun.getDouble("r");
GeoPoint new1=new GeoPoint((int)(q*1000000), (int)(r*10000000));
mc.setCenter(new1);
mapOverlays = mv.getOverlays();
OverlayItem overlayitem = new OverlayItem(new1, "New", "test1");
itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
mc.animateTo(new1);
mv.setSatellite(false);
mc.setCenter(new1);
mv.postInvalidate();
}
有没有办法从第二个活动中拨打set()
?或者,当从第二个活动调用主要活动时,我该如何调用它?另外,我想用新旗开始主要活动。
答案 0 :(得分:7)
确保主要活动标志为“singleTop”。
Intent init = new Intent(this, MainActivity.class);
init.putExtra(Putwhatever you want to put);
init.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP );
startActivity(init);
覆盖MainActivity中的onNewIntent方法。您将获得意图“init”,它将作为参数传递给onNewIntent方法。
答案 1 :(得分:0)
启动活动没有问题。在bundle中你需要获取这样的值:
Bundle var_name = getIntent().getExtras().getBundle(key);