android - 从 Activity 传递时获取对象为 null

标签 android object android-intent nullpointerexception serializable

在我的应用程序中,我将一个名为“Person”的自定义对象从一个 Activity 传递到另一个 Activity 。 Person 类实现了 Serializable。我已经尝试了 StackOverflow 中显示的所有可能方法,但我仍然遇到 NullPointerException。在接收 intent 时,当我访问 Person 对象时,我总是得到 Null。

这是我的代码:

在 Activity FlipCard(发送 Activity)中:

在 Edittext 的 onclick 中:

edt_from.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Log.e("RecActvity", "edt_from onclick");
            Intent from_intent = new Intent(FlipCardActivity.this,
                    FromMessageActivity.class);                 
            from_intent.putExtra("From_address", from_address);
            Log.e("Address sending", from_address.getName());
            startActivity(from_intent);

        }
    });

在 Activity FromAddress(接收 Activity)中:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_from_message);
    Log.e("FromAddress", "OnCreate");
            Person from_address = (Person) getIntent()
            .getSerializableExtra("From_Address");
    if (from_address != null) {
        Log.e("Address", from_address.getName());
    }
   }

人类:

public class Person implements Serializable {
/**
 * 
 */
private static final long serialVersionUID = 1974743341607699233L;
private String name;
private String address1;
private String address2;
private String city;
private String state;
private String postcode;
private String country;

public Person() {
    super();

}

public Person(String name, String addr1, String addr2, String city,
        String state, String pcode, String ctry) {
    this.name = name;
    this.address1 = addr1;
    this.address2 = addr2;
    this.city = city;
    this.state = state;
    this.postcode = pcode;
    this.country = ctry;
}

public String getName() {
    return name;
}

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

public String getPostalAddress() {
    String from_address = this.name + "\n" + this.address1 + "\n"
            + this.address2 + "\n" + this.city + "," + this.state + " "
            + this.postcode + "\n" + this.country;
    return from_address;
}

public String getAddress1() {
    return address1;
}

public void setAddress1(String address1) {
    this.address1 = address1;
}

public String getAddress2() {
    return address2;
}

public void setAddress2(String address2) {
    this.address2 = address2;
}

public String getCity() {
    return city;
}

public void setCity(String city) {
    this.city = city;
}

public String getState() {
    return state;
}

public void setState(String state) {
    this.state = state;
}

public String getPostcode() {
    return postcode;
}

public void setPostcode(String postcode) {
    this.postcode = postcode;
}

public String getCountry() {
    return country;
}

public void setCountry(String country) {
    this.country = country;
}

}

请帮助我摆脱这个错误。我无法弄清楚出了什么问题。

谢谢。

最佳答案

您似乎遇到了大小写问题。在发送类中你有

from_intent.putExtra("From_address", from_address);

在你的接收类中

.getSerializableExtra("From_Address");

发送类的“地址”小写“a”,接收类的“A”大写

关于android - 从 Activity 传递时获取对象为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21519251/

相关文章:

ios - 我的所有对象都在我的 iOS 模拟器中消失了,这是为什么?

javascript - 在 JavaScript 中检查嵌套对象是否只包含单个键值对

android - 带有动态 Edittext 的 RecyclerView

java - Recyclerview 投入使用

android - React-Native:FlatList 中的反向 zIndex

javascript - 如何访问和处理嵌套对象,数组或JSON?

java - 如何在从 Android 服务类启动其他 Activity 后关闭 1 个 Activity

android - 在 Runnable 中调用 Intent 会导致 Android Studio 中的应用程序崩溃

Android parcelable 和 Intent : redBundle: bad magic number

android - OnClickListener 和 OnLongClickListener 未在 Launcher 中触发