2014-01-23 3 views
0

В Xamarin, как я могу передать объект, определенный пользователем (класс, который я написал), в другое действие?Передать объект на новое действие

Объект Я хочу передать это элемент в списке называется:

_mapLocationList[0] 

Деталь типа:

MapLocation 

Вот мой текущий код:

intent.PutExtra ("MapLocation", _mapLocationList[0]); 

Можно ли использовать вышеуказанный метод для передачи объекта? Если нет, как я могу это сделать?

Заранее спасибо

ответ

1

Самый простой способ передачи объектов к Activity использует Intent с. Для этого вам понадобится ваш класс до implementSerializable или Parcelable.

Таким образом, вы должны поместить ваш объект в Intent с помощью метода putExtra("myobject", object), а затем в другой Activity восстановить его с getSerializableExtra("myobject").

Например:

В первом Activity:

final Intent intent = new Intent(this, SecondActivity.class); 
intent.putExtra("my_class", your_maplocation_object); 
startActivity(intent); 

Тогда в вашем втором Activity, вы могли бы сделать:

final Intent passedIntent = getIntent(); 
final MapLocation my_class = (MapLocation) passedIntent.getSerializableExtra("my_class"); 
0

Существует более простой и очень приятный способ: используйте библиотеку Googe GSON.

Сериализация в деятельности A:

intent.putExtra("mapLocExtra", new Gson().toJson(myMapLocationObject,MapLocation.class); 
startActivity(intent); 

*** десериализация в активность B: *

@Oncreate(...){ 

String mapLocJson= getIntent().getExtra("mapLocExtra").toString(); 
MapLocation mylocationObject= new Gson().fromJson(maplocJson,MapLocation.Class); 

//do Stuff With mylocationObject 
    } 

Больше информации: https://code.google.com/p/google-gson/

+0

Хорошая идея, но не будет работать с gson , Замените его сериализатором ServiceStack.Text или Json.NET. Он использует Xamarin ...;) – SKall

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