gpt4 book ai didi

android - 在 Activity 之间传递参数 - 空

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:02 25 4
gpt4 key购买 nike

我正在发送实现可序列化的自定义类的对象:

public class MyObject extends ParseObject implements Serializable {
private static final long serialVersionUID = 1L;
public MyObject() {
}
public String getTitle() {
return getString("title");
}
public void setTitle(String title) {
put("title", title);
}
public ParseFile getParseFile() {
return getParseFile("file");
}
public void setParseFile(ParseFile file) {
put("file", file);
}
}

该类包含 atm 一个字符串和一个 ParseFile。

我正在尝试将一个对象从一个 Activity 传递到另一个。

private void editMyObject(MyObject myObject) {
Intent intent = new Intent(AActivity.this, BActivity.class);
intent.putExtra("MyObject", myObject);
Toast.makeText(getApplicationContext(), "OUT: "+myObject.getTitle(), Toast.LENGTH_SHORT).show(); // here i get the content, proper string
startActivity(intent);
}

在“接收者” Activity 中:

protected void onCreate(Bundle savedInstanceState) {
...

Intent intent = getIntent();
myObject = (MyObject)intent.getSerializableExtra("MyObject");
if (myObject != null) {
editText.setText(myObject.getTitle());
}
Toast.makeText(getApplicationContext(), "IN: "+myObject.getTitle(), Toast.LENGTH_SHORT).show(); // here is null
}

我做错了什么..?我在 SOF 上关注了另一个问题,但这没有帮助;)顺便说一句:不,ParseFile 是来自 Parse developers 的类

最佳答案

我猜它应该是这样的 ParsObject implements Serializable 因为根据关于 Serializable 的主题,如果 Super 类不可序列化,则实例的状态不会被维护。因此尝试使 ParseObject 类可序列化并查看结果

尝试这样的事情

public class MyObject implements Serializable {

private ParseObject parseObject;

public MyObject() {
parseObject = new ParseObject();
}

public String getTitle() {
return parseObject.getString("title");
}

public void setTitle(String title) {
parseObject.put("title", title);
}

public ParseFile getParseFile() {
return parseObject.getParseFile("file");
}

public void setParseFile(ParseFile file) {
parseObject.put("file", file);
}

private void writeObject(java.io.ObjectOutputStream stream)
throws IOException {
stream.writeObject(parseObject);
}

private void readObject(java.io.ObjectInputStream stream)
throws IOException, ClassNotFoundException {
parseObject = (ParseObject) stream.readObject();
}
}

关于android - 在 Activity 之间传递参数 - 空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18658373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com