Передать сериализуемый объект через намерение

Это моя первая попытка найти решение моей проблемы, поэтому постарайтесь быть добрыми парнями! Я нашел множество решений проблем, с которыми я имею дело на этом сайте, выполнив простой поиск, но на этот раз мне не повезло, я думаю. Я не нашел ничего подходящего моей проблеме, поэтому я перестал задавать новый вопрос.

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

public abstract class MyObject {

    private boolean New;
    private boolean Modified;

    public MyObject() {
        New = true;
    }

    public boolean isNew() {
        return New;
    }

    protected void setNew(boolean value) {
        New = value;
    }

    protected boolean isModified() {
        return Modified;
    }

    protected void setModified(boolean value) {
        Modified = value;
    }

}

public abstract class MyItemBase extends MyObject {

    private Long Id;
    private String Description;

    public MyItemBase() {
        super();
    }

    public Long getId() {
        return Id;
    }

    public void setId(Long id) {
        Id = id;
    }

    public String getDescription() {
        return Description;
    }

    public void setDescription(String description) {
        Description = description;
    }

}

public class MyItem extends MyItemBase implements Serializable {

    private static final long serialVersionUID = -2875901021692711701L;

    public MyItem() {
        super();
    }

}

У меня есть две операции, ActivityA с кнопкой для вызова ActivityB следующим образом.

public class ActivityA extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_a);

        Button btn = (Button) findViewById(R.id.button);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(),
                        ActivityB.class);

                MyItem item = new MyItem();
                item.setId((long) 1);
                item.setDescription("test");

                intent.putExtra("MyItem", (Serializable) item);
                startActivityForResult(intent, 1);
            }

        });
    }

}

public class ActivityB extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_b);

        MyItem item = (MyItem) getIntent().getSerializableExtra("MyItem");
        ((TextView) findViewById(R.id.text)).setText(item.getDescription());
    }

}

Поэтому, когда я получаю MyItem из второго действия без каких-либо ошибок, оба свойства Id и Description равны нулю. На самом деле это новый объект, потому что свойство New имеет значение true. Теперь, если я попытаюсь получить объект точно после того, как поместил его в намерение в первом действии, вот так

intent.putExtra("MyItem", (Serializable) item);
MyItem newItem = (MyItem) intent.getSerializableExtra("MyItem");
startActivityForResult(intent, 1);

это работает отлично. newItem имеет все свойства с правильными значениями.

Есть идеи?

Спасибо всем заранее!

Ответы на вопрос(1)

Ваш ответ на вопрос