a Parcel
МОЖНО решить вашу проблему.
думают о Parcel
как о «массиве» (метафорическом) примитивных типов (long, String, Double, int и т. д.). если ваш пользовательский класс состоит из примитивных типов ТОЛЬКО, то измените объявление класса, в том числе implements Parcelable
.
вы можете передать предметный объект через намерение без каких-либо трудностей (точно так же, как вы отправляете примитивно- набранный объект). в этом случае у меня есть произвольный пользовательский класс FarmData (состоящий из длин, строк и удвоений), который я перехожу из одного действия в другое с помощью намерения.
FarmData farmData = new FarmData();
// code that populates farmData - etc etc etc
Intent intent00 = new Intent(getApplicationContext(), com.example.yourpackage.yourclass.class);
intent00.putExtra("farmData",farmData);
startActivity(intent00);
, но получить его может быть сложно. деятельность, которая получает намерение, проверяет, отправляется ли комплект дополнительных услуг вместе с намерением.
Bundle extras = getIntent().getExtras();
FarmData farmData = new FarmData();
Intent intentIncoming = getIntent();
if(extras != null) {
farmData = (FarmData) intentIncoming.getParcelableExtra("farmData");// OK
}