- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 putExtra 将我的数据从 Activity1 发送到 Activity2。
我的自定义对象实现了 Serializable :
public class ARObjectCategory implements Serializable {
private static final long serialVersionUID = 3128594851129501738L;
public int id;
public String name;
public transient ARObjectCategory parent;
public transient SparseArray<ARObjectCategory> children;
public transient Bitmap iconBitmap = null;
public String icon;
private boolean active = false;
public ARObjectCategory(int id, String name, ARObjectCategory parent) {
this.id = id;
this.name = name;
this.parent = parent;
this.children = new SparseArray<>();
}
public void addChild(ARObjectCategory child) {
children.append(child.id, child);
if (getActive())
child.setActive(true);
}
public final ARObjectCategory getChild(int index) {
return children.valueAt(index);
}
public final SparseArray<ARObjectCategory> getChildren() {
return this.children;
}
public final int getParentLast() {
ARObjectCategory parentTemp = this.parent;
while (parentTemp.parent != null) {
parentTemp = parentTemp.parent;
}
return parentTemp.id;
}
public final ARObjectCategory getChildById(int id) {
return children.get(id, null);
}
public final int getChildrenCount() {
return children.size();
}
public Boolean getActive() {
return this.active;
}
public void setActive(Boolean bool) {
this.active = bool;
}
public Bitmap getIconBitmap() {
return iconBitmap;
}
public void setIconBitmap(Bitmap iconBitmap) {
this.iconBitmap = iconBitmap;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
}
Activity1.java(发件人):
ARObjectCategory test1= adapter.getItem(position);
Intent subCat= new Intent(getActivity(), SubCategoriesActivity.class);
subCat.putExtra("test",test1);
subCat.putExtra("selected",position);
startActivity(subCat);
在 Debug模式下,我的对象看起来没问题。 SpraseArray 获得了 AROjcectCategory 的对象。
Activity2.java(接收者):
Bundle extras = getIntent().getExtras();
if (extras != null) {
int selected = extras.getInt("selected", -1);
ARObjectCategory list = (ARObjectCategory) extras.getSerializable("test");
SparseArray<ARObjectCategory> lista = list.getChildren();
}
但是当我调试 Activity2 时。我看到我的 SpraseArray of children 是空的
最后,当我从我的对象中删除 transient 时。
public transient ARObjectCategory parent;
public transient SparseArray<ARObjectCategory> children;
我的 logcat 出现以下错误:
java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.ethos.ar.core.ARObjectCategory) ........
Caused by: java.io.NotSerializableException: android.util.SparseArray ......
将具有 SpraseArray 的对象发送到其他 Activity 的正确方法是什么。
提示:Parcelable 不起作用:
dest.writeParcelable(this.children);
SparseArray<ARObjectCategory> cannot be converted to SparseArray<Object>
谢谢
最佳答案
当您使用 transient 修饰符时,该成员将被排除在序列化过程之外。这就是您获得空对象的原因。当您删除 transient 修饰符时,您会收到一个异常,但为什么呢?那是因为“SparseArray”对象本身没有实现“Serializable”接口(interface)。请记住,为了使对象可序列化,其所有属性都必须实现“可序列化”接口(interface)。现在你能做什么?你应该实现Android的“Parcelable”接口(interface),但是如何实现呢?如果您在可分割过程中使用“SparseArray”时遇到问题,那么您可以将其分割到另一个对象,并在创建过程中重新创建原始“SparseArray”对象。
关于android - Serializable SparseArray<自定义对象>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38586997/
我必须使用两个键和一个值来实现类似于 Hashmap 的分类,比方说 Hashmap ,其中两个键是整数,值是我定义的通用 MyObject。 我读了this , this , 和 this发布,我也
我需要使用散列图在我的 Android 应用程序中存储键/值(可能有数千个),但我知道我应该使用 SparseArray 以节省内存。但是,我的 key 必须是一个字符串。有没有办法创建 Sparse
如何初始化一个static,android.util.SparseArray 的不可修改的实例? ? 最佳答案 这是使用匿名类的更好方法: static final SparseIntArray my
我正在使用 HashMap 实现位图缓存并在 Eclipse 中收到以下警告: Use new SparseArray(...) instead for better performance. 我以前
有没有办法迭代 Java SparseArray(适用于 Android)?我使用 sparsearray 轻松地按索引获取值。我找不到。 最佳答案 似乎我找到了解决方案。我没有正确注意到 keyAt
问题 Julia 有没有有效的方式 从给定的条目列表 (u,v,w) 构建一个巨大的稀疏矩阵 ,其中一些可以具有 相同地点 (u,v),在这种情况下,它们的权重 w 必须是 求和 .因此u,v,w是输
所以我正在编写一些非常简单的代码,并发现了非常意外的行为。所有 List 和 Map 实现都使用节点的 equals 方法来比较它们。因此,如果您有一个字符串列表,并且您想尝试获取列表中字符串的索引,
是否可以通过仅提供密集条目来初始化 pandas SparseArray?我无法从文档中弄清楚这一点:http://pandas.pydata.org/pandas-docs/stable/spars
嗨,我有一个简单的函数调用: RemoveSpecific(sheetType); // String sheettype 我希望它与 SparseArray 一起调用,因为我将根据 sheetTy
难道这不可能吗?如果没有,那么有没有类似的方法? public abstract class BaseItem { } public class SpecificItem extends BaseIt
我最近开始使用 Android SparseArray 代替 ArrayList 来处理少量项目。我想知道为什么它不像普通 ArrayList 那样包含 toArray() 方法?它包含一个用于值的私
我想使用 putExtra 将我的数据从 Activity1 发送到 Activity2。 我的自定义对象实现了 Serializable : public class ARObjectCategor
我使用针对用户名列表的唯一 int id 列表作为快速查找表,并决定使用 sparseArray 但我希望能够不时打印以记录整个列表以进行调试. SparseArray 不可迭代并且与 util.Ma
当整数键是资源 ID 时,是否建议使用 SparseArray ?或者它是针对数字较小的键? 是的,我知道 SparseArray 的定义,并且当使用带有整数键的 ArrayList 时,编译器总是发
如下图所示,latLng 等于 latlng1,但 indexOfValue() 返回不同的值。 这是为什么? 最佳答案 在内部,SparseArray 将值保存在 Objects 数组中。在 ind
我尝试用谷歌搜索这个警告,似乎找到了其他警告,但似乎有点不对劲。 Type safety: The method put(int, Object) belongs to the raw type Sp
我正在尝试从队列中获取结果,对其进行处理并在之后将其删除。但是我在访问 null key 的情况下遇到了 Java 异常,见下文 int key = 0; int size = mQueue.size
我想知道在 SparseArray 类的 HashMap 类上是否有与 putAll 方法等效的方法? 我很困惑是否应该使用 append、put 或 setValueAt 以及它是否会给我相同的结果
我如何通过 Moshi 将 SparseArray 序列化为 JSON?我真的不明白如何为此制作正确的适配器,感谢任何帮助。 编辑:我已经通过这段代码让它工作了 class SparseArrayJs
我想知道 SparseArray 和 HashMap 之间的性能和效率,以及哪个更好用。我无法理解何时使用 SparseArray 以及何时使用 Hashmap 最佳答案 SparseArray 是当
我是一名优秀的程序员,十分优秀!