2016-08-14 2 views
0

От активностиКак отправить объект вызывающей активности вызываемой активности

Intent intent = new Intent(lamps.this,light_control.class).putExtra("variable",lamps.this); 


     startActivity(intent); 

Для деятельности

Intent intent = getIntent(); 
     lampvaiable = (lamps)intent.getSerializableExtra("variable"); 

Я должен использовать объект lamp.this активности в light_control.class деятельности, но startActivity (умысел) не получает вызова.

Я получаю java.io.NotSerializableException

+0

'putExtra (« переменная », lamps.this);' -> 'putExtra (« переменная », лампы); '// объект, который вы хотите передать – Shaishav

+0

, показывает ошибку, ожидаемое выражение –

ответ

1

Прежде всего сделать класс Сериализуемым, объект которого ваш отправляет

Intent i = new Intent(); 
i.putExtra("variable", (Serializable) Object); 

Затем получает в

Intent intent = getIntent(); 
lamps lamp = (Lamps) intent.getExtras().getSerializable("variable"); 
+0

Я реализовал Serializable для ламп класса –

+0

могу ли я использовать lamps.class –

+0

Где вы хотите использовать lamps.class? –

0

Использование Gson библиотеки для этой цели. Преобразуйте объект в строку Gson, затем отправьте его в другое действие. Получите эту строку из намерения и преобразуйте ее в Object

0

Помните, что пучок может содержать максимальный размер аргументов (1 МБ, если я не ошибаюсь). Если это огромный объект, вы получите TransactionTooLargeExceptionexception. Поэтому, пожалуйста, советую рассмотреть другие методы (Local Storage, DataManager, которые будут удерживать объект и т. Д.)

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