2

android.location.AddresswithのインスタンスIntentを別のアクティビティに配置することは可能ですか?

Address current_location;

つまり、意図を持って current_location を直接配置しようとしています。

  1. IntentName.putExtra("current_location",current_location);

  2. またはバンドルによって間接的に:

    Bundle b = new Bundle();
    b.put....("current_location",current_location);
    IntentName.put(b);
    

上記の戦略のいずれも「Address」をサポートしていない場合、Address インスタンスを別のアクティビティに渡すための最良の方法は何ですか? 私が宣言するならば、 public static Address current_location;

別のアクティビティからアクセスしようとすると、Android が current_location データを保持するという保証はありません。それとも私が間違っていますか?

このような状況では、どのようなアプローチを取るべきでしょうか?

4

2 に答える 2

5

小包として渡す必要があります。APIを見ると、すでに標準に準拠していると思います。

Address extends Object 実装 Parcelable

https://developer.android.com/reference/android/location/Address.html

したがって、パッケージ化して送信するには、次のようにします。

    String key = getResources().getString(key);

    startActivity( new Intent()
                        .setClass(this, YourActivity.class)
                        .putExtra(key, current_location )
    );

次に、アクティビティでそれを再構築するには、次のようにします。

   String key = getResources().getString(key);
   Address current_location = getIntent().getExtras().getParcelable(key); 

キーは、Parcelable を保存するために使用する名前です。

于 2012-06-26T19:55:03.213 に答える
2

住所(下記参照)を渡すことができるかどうかはわかりませんが、経度と緯度(両方ともdoubleエクストラとして配置できます)を渡して、次のアクティビティで再構築してみませんか?

アドレスはParcelableインターフェースを実装しているようです。つまり、として送信できる可能性がありますintent.putParcelable(key, address)

于 2012-06-26T19:51:33.413 に答える