Передача массива объектов между двумя действиями

Вы можете попробовать так, это работает для меня:

public delegate void MyEventHaldler(object sender, EventArgs e);

public class B
{
    public virtual event MyEventHaldler MyEvent;
    protected override void OnChanged(EventArgs e)
    {
        if (MyEvent != null)
            MyEvent(this, e);
    }
}

public class D : B
{
    public override event MyEventHaldler MyEvent;
    protected override void OnChanged(EventArgs e)
    {
        if (MyEvent != null)
            MyEvent(this, e);
    }
}
-1
задан PeteF 19 March 2019 в 15:16
поделиться

2 ответа

Использование реализации интерфейса интерфейса + метод намерения, предоставленный Олегом, является хорошим способом сделать это.

И еще один способ - использовать шаблон проектирования Singleton и хранить общие данные в этом объекте Singleton.

0
ответ дан KotlinIsland 19 March 2019 в 15:16
поделиться

Ваш пользовательский класс должен реализовывать интерфейс Parcelable. Типичная реализация Parcelable:

 public class MyParcelable implements Parcelable {
    private int mData;

    public int describeContents() {
        return 0;
    }

    public void writeToParcel(Parcel out, int flags) {
        out.writeInt(mData);
    }

    public static final Parcelable.Creator<MyParcelable> CREATOR
            = new Parcelable.Creator<MyParcelable>() {
        public MyParcelable createFromParcel(Parcel in) {
            return new MyParcelable(in);
        }

        public MyParcelable[] newArray(int size) {
            return new MyParcelable[size];
        }
    };

    private MyParcelable(Parcel in) {
        mData = in.readInt();
    }
}

И затем вы можете отправить свои данные, используя что-то вроде этого:

Intent intent;
intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putParcelableArrayListExtra("Workout", workout);
startActivity(intent);

И получить:

workout = getIntent().getParcelableArrayListExtra("Workout");

Примечание : Убедитесь, что каждый вложенный класс вашего основного пользовательского класса имеет реализованный интерфейс Serializable

0
ответ дан Oleg Golomoz 19 March 2019 в 15:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: