在Android中通过Intent传递子类的实例后,不从超类方法获取值

问题描述 投票:1回答:1

假设有两个名为Parent和Child的模型类,其中Parent Class是Child Class的超类。

Class Parent {
    private String id;

    public void setId(String id) { this.id = id; }
    public void getId() { return id; }   
}

Class Child extends Parent implements Serializable {
    private String name;

    public void setName (String name){ this.name = name; }
    public void getName (){ return name; }
}

假设我的应用程序Activity1和Activity2中有两个活动。在Activity1中:

Class Activity1 extends Activity {
   //Create a instance of Class B and set some values.
   Child item = new Child();
   item.setId("001");
   item.setName("Test");

   //Start the Activity2 and put the instance of Child into it.
   Intent intent = new Intent(this, Activity2.class);
   intent.putExtra("item",item);
   startActivity(intent);
}

在Activity2中:

Class Activity2 extends Activity {
     if (getIntent().getSerializableExtra("item") != null){
        currentItem = (Child) getIntent().getSerializableExtra("item");
        Log.d("Current Item Name:", ": " currentItem.getName());
        Log.d("Current Item Id:", ": " + currentItem.getId());
     }
}

输出:

Current Item Name:: 001
Current Item Id:: null

任何人都可以帮我解释为什么我在这里“无效”?

java android
1个回答
0
投票
Class Parent  implements Serializable {
    private String id;

    public void setId(String id) { this.id = id; }
    public void getId() { return id; }   
}

您还需要序列化Parent类。

© www.soinside.com 2019 - 2024. All rights reserved.