0

У меня нет сериализуемых данных, которые я должен отправить другим Activity. Я стараюсь использовать Intent, но это невозможно.Отправить не сериализуемые данные в новую активность

Intent intent = new Intent(v.getContext(), UserDetailActivity.class); 
intent.putExtra("class", user); 
v.getContext().startActivity(intent); 

Как я могу отправить данные из предыдущего Activity к новым Activity?

+0

'пользователь' - это именно то, что именно? Пользовательский класс 'User'? –

+0

Что такое «пользовательский» тип? – SKK

+0

Можете ли вы уточнить, какие данные? –

ответ

1

Я не думаю, что вы можете сделать это, потому что ParseUser должен реализовать Parcelable или Serializable. Вы, вероятно, не может изменить класс так это то, что вы можете сделать:

  1. Создание класса-оболочки и реконструировать объект ParseUser. Эта оболочка должна реализовать Parcelable или Serializable. Это может не всегда работать.

  2. Расширение класса приложения, созданного вами, создает экземпляр объекта ParseUser.

  3. Используйте синглтон.

1 Может показаться сложным, 2 и 3 проще.

+0

Я использовал 2, потому что 1 для Parse SDK невозможно. И 3 - это то же самое, что и 2. – Val

0

Вы можете сделать это двумя способами

1.the, как вы делаете это передавать данные с помощью намерения

Чтобы использовать данные отправить по этому методу использовать метод getIntent() внутри вашей второй деятельности, к которым вы хотите передать данные, это дает вам объект намерения, и из этого вы можете повторно передать данные, передающие ваш ключ.

0

Вы можете использовать Google Gson lib, чтобы преобразовывать и анализировать ваши объекты как форматированные строки JSON и передавать их как обычные строки Java.

Для преобразования объекта в JSON строки:

ParseUser user=new ParseUser(); 
Gson gson = new Gson(); 
String json = gson.toJson(user); 

Чтобы разобрать его из JSON строки обратно в объект:

ParseUser user = gson.fromJson(json, ParseUser.class); 

неродственного рассмотрение, однако, является ли прохождение ParseUser в другой деятельности это хорошая идея. Возможно, что ParseUser нельзя сериализовать из-за плохого дизайна библиотеки, или потому, что он не должен использоваться таким образом. Поскольку я не использую эту конкретную библиотеку, я не могу ответить на этот вопрос для вас.

0

Если вы не можете Сериализовать или сделать объект Исходным, маршрутизация его через объект приложения или статическую переменную походит на параметры.

Вы также можете проверить эту библиотеку (https://github.com/noxiouswinter/gnlib_android/wiki/gnlauncher) Я написал, чтобы сделать этот процесс передачи данных другим мероприятиям проще. Это не требует, чтобы объект был сериализован или реализован Parcelable.