gpt4 book ai didi

java - Android Parcelable 麻烦

转载 作者:行者123 更新时间:2023-11-29 09:30:43 31 4
gpt4 key购买 nike

我在 android 中实现 Parcelable 类时遇到问题。

我遇到的问题是我收到的是 BinarySearchTree 无法转换为 TreeNode。

当我打印出我收到的类型是什么时,它说树节点,所以我不完全确定问题是什么。

这是错误

01-31 18:13:50.986: E/AndroidRuntime(1059): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.discoverycalendar/com.discoverycalendar.DiscoveryMainMenu}: 
java.lang.ClassCastException: com.DiscoveryUtils.BinarySearchTree cannot be cast to com.DiscoveryObjects.TreeNode

private TreeNode root = null;


@Override
public int describeContents() {

return 0;
}

public BinarySearchTree(Parcel in){

this();
root = (TreeNode) in.readValue(TreeNode.class.getClassLoader());
in.readStringList(treeCont);
in.readStringList(treeAsString);
}

public static final Creator<BinarySearchTree> CREATOR = new Creator<BinarySearchTree>() {

public BinarySearchTree createFromParcel(Parcel source) {

return new BinarySearchTree(source);
}

public BinarySearchTree[] newArray(int size) {

return new BinarySearchTree[size];
}
};

@Override
public void writeToParcel(Parcel dest, int flags) {

dest.writeValue(root);
dest.writeStringList(treeCont);
dest.writeStringList(treeAsString);
}

我收到的错误是当我尝试将返回值转换为 TreeNode 时。我不知道为什么它认为它是一个不同的对象。

最佳答案

原因很简单是TreeNode不是 Serializable或包裹。因此,您需要创建一个自定义类来扩展 TreeNode 并实现其中之一以展平数据。这是一个document的支持类型。 TreeNode 不存在。

关于java - Android Parcelable 麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14637014/

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