0

MapsAndlocationDemo で MonoDevelop for Android を使用していますが、別のアクティビティの開始について質問があります。

これが私のコードです:

    public void loadActivity (Context ActivityContext)
    {
        var second = new Intent(ActivityContext, typeof(LocationDetailsActivity));
        second.PutExtra("FirstData", "Data from FirstActivity");
        StartActivity (second);
    }

MapWithOverlayActivity : MapActivityこのコードは、クラスから呼び出されたときに完全に機能します。地図マーカーMapItemizedOverlay: ItemizedOverlayのメソッドが呼び出されたときにクラスから呼び出したいです。OnTap

メソッドを静的にしようとしました。これが私のコードです:

    static public void loadActivity (Context ActivityContext)
    {
        var second = new Intent(ActivityContext, typeof(LocationDetailsActivity));
        second.PutExtra("FirstData", "Data from FirstActivity");
        StartActivity (second);
    }

ただし、次のエラーが表示されるようになりました。An object reference is required for the non-static field, method or property Android.Content.Context.StartActivity(Android.Content.Intent)

これが機能しない理由と、機能させるための助けについての情報を教えてください。

4

1 に答える 1

1

役立つ場合は、Android のグローバル Application オブジェクトを使用できます。次に例を示します。

public class MyApp extends Application{
    private String foo = null;

    public String getFoo(){
        return foo;
    }
}

public class MyActivity extends Activity {
    private MyApp app;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        app = ((MyApp)getApplication());

        String thing = app.getFoo();
    }
}

メソッドにどこからでもアクセスできるようにする必要がある場合は、 getFoo メソッドを Intent に置き換えることができます:)うまくいくはずです。アプリケーションリファレンスはこちら

于 2012-12-24T06:55:09.707 に答える