2011-09-05 60 views
0

如何用新国旗开始活动?我有2个活动。一个是主要的,另一个是我用来显示数据库的ListView。它由地址和(纬度,经度)值组成。每当我点击一个项目时,我都会尝试去控制主要活动并在地图上显示那里的(纬度,经度)值。我通过捆绑中的(纬度,经度)值并在主要活动中编写了一个set()以设置(经度,纬度)值。但主要活动在后台运行。我的第二个活动代码:用新国旗开始活动

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()从第二个活动?或者当我从第二项活动中调用主要活动时该如何调用它?另外我想用一面新旗子开始主要活动。

回答

6

确保主要活动标志是“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中的onInwIntent方法。你将得到意图“init”,它将作为参数传递给onNewIntent方法。

0

开始活动没有问题。在捆绑中,您需要获取像这样的值:

Bundle var_name = getIntent().getExtras().getBundle(key); 
+0

谢谢,但如何用一个新的标志开始活动并调用set()。请提出一些想法,并发布一些链接 – hussain

+0

开始活动是这样的:Intent launch = new Intent(youractivity.this,activitytobelauched.class); \t \t \t \t \t launch.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(launch); –

+0

我的主要活动仍在后台运行。我想用新标志来启动那个活动,新的纬度,经度值是我从第二个活动中传过来的。我怎样才能做到这一点。请帮助建议一些方法 – hussain