2011-09-05 6 views
0

新しいフラグでアクティビティを開始するにはどうすればよいですか?私は2つの活動があります。 1つは、私がListViewにデータベースを表示するために使用したメインと他のものです。アドレスと(緯度、経度)値で構成されます。私はアイテムコントロールをクリックするたびに主なアクティビティに行き、地図上にその値(緯度、経度)を表示するようにしています。私はバンドルの(緯度、経度)の値を渡し、(緯度、経度)の値を設定するために主なアクティビティにset()を書きました。しかし、主な活動はバックグラウンドで実行されています。第2活性の私のコードである:新しいフラグでアクティビティを開始する

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が第2の活性です。主な活動での私のコードは次のとおりです。

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()をコールする方法はありますか?または、第2アクティビティからメインアクティビティが呼び出されたときに、どのように呼び出す必要がありますか?また、私は新しい旗で主な活動を開始したい。

答えて

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でオーバーライドonNewIntent方法。 onNewIntentメソッドのパラメータとして渡される "init"というインテントを取得します。

0

活性開始に問題はありません。バンドルでは、次のような値を取得する必要があります。

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

新しいフラグでアクティビティを開始してset()を呼び出す方法はありがたいですが、 plsはいくつかのアイデアを提案し、いくつかのリンクplsを投稿します – hussain

+0

このような活動を開始する:Intent launch = new Intent(youractivity.this、activitytobelauched.class); \t \t \t \t \t launch.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(起動); –

+0

私の主な活動はまだバックグラウンドで実行されています。私は第2アクティビティから渡された新しい緯度、経度の値で新しいフラグでそのアクティビティを開始したいと思います。どうやってやるの。 plsはいくつかの方法を提案します – hussain