publicclassENimplementsSerializable { //... you don't need implement any methods when you implements Serializable }
Ввод данных. Создайте новое действие с дополнительными:
ENenumb=newEN(); Intentintent=newIntent(getActivity(), NewActivity.class); intent.putExtra("en", enumb); //second param is Serializable startActivity(intent);
Получение данных из нового действия:
publicclassNewActivityextendsActivity {
private EN en; @Override publicvoidonCreate(Bundle savedInstanceState) { try { super.onCreate(savedInstanceState);
Bundleextras= getIntent().getExtras(); if (extras != null) { en = (EN)getIntent().getSerializableExtra("en"); //Obtaining data } //...
Ответ 3
Я расширил ответ ρяσѕρєя K, чтобы сделать код полным и работоспособным. Итак, когда вы закончите заполнять свой список 'all_thumbs', вы должны поместить его содержимое одно за другим в пакет, а затем в intent:
Bundlebundle=newBundle();
for (inti=0; i<all_thumbs.size(); i++) bundle.putSerializable("extras"+i, all_thumbs.get(i));
intent.putExtras(bundle);
Чтобы получить дополнительные данные из intent, вам нужно:
// collect your Thumbnail objects for (String key : bundle.keySet()) { thumbnailObjects.add((Thumbnail) bundle.getSerializable(key)); }
// for example, in order to get a value of the 3-rd object you need to: Stringlabel= thumbnailObjects.get(2).get_label();
Преимуществом Serializable является его простота. Однако я бы рекомендовал вам рассмотреть возможность использования Parcelable метода, когда вам нужно передать много данных, потому что Parcelable он специально разработан для Android и он более эффективен, чем Serializable. Вы можете создать Parcelable класс, используя:
Не забудьте реализовать Serializable в каждом классе, который будет использовать ваш объект, как список объектов. В противном случае ваше приложение завершит работу с ошибкой.