2012-06-26 2 views
2

Можно ли отправить экземпляр android.location.Address с Intent в другое мероприятие?Как отправить android.location.Address с намерением как putextra

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); 
    

Если ни одна из вышеперечисленных стратегий не поддерживает «Адрес», то какой должен быть лучший способ передать экземпляр адреса другому мероприятию? Если я заявляю, public static Address current_location;

и попытаться получить к нему доступ из другой деятельности, то нет никакой гарантии, что Android будет содержать данные CURRENT_LOCATION. Или я ошибаюсь?

В такой ситуации, какой подход следует соблюдать?

ответ

5

Вы хотите передать его как можно более подробно. Если посмотреть на API, я думаю, что они уже соответствуют стандарту.

Адрес расширяет объект реализует 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); 

Ключ - это просто имя, которое вы используете для хранения подробных данных.

2

Я не знаю, сможете ли вы передать адрес (см. Ниже), но почему бы просто не пропустить долготу и широту (как double s, которые могут быть размещены как дополнительные), а затем восстановить его в следующее мероприятие?

Адрес, кажется, реализует интерфейс Parcelable, что означает, что вы можете отправить его как intent.putParcelable(key, address).

+0

Это не сработает для меня, что касается класса Activity, в который я отправляю данные, это помочь пользователю найти наилучший результат поиска, поэтому мне нужна вся информация из экземпляра Address. –

+0

Хорошо. Вы пробовали подход «Parcelable»? Я не использовал его много, но я уверен, что вы сможете найти здесь руководство. –

+0

Я уже пробовал, и это сработало. Я ценю ваше руководство –

Смежные вопросы