相关疑难解决方法(0)

823
推荐指数
19
解决办法
59万
查看次数

307
推荐指数
6
解决办法
8万
查看次数


如何以一种聪明的方式将Java.util.Map写入parcel?

我有一个字符串的通用映射(键,值),这个字段是我需要可以分配的Bean的一部分.所以,我可以使用Parcel#writeMap方法.API Doc说:

请改用writeBundle(Bundle).在当前dataPosition()中将Map展平到parcel中,如果需要,增加dataCapacity().Map键必须是String对象.Map值使用writeValue(Object)编写,并且必须遵循其中的规范.强烈建议使用writeBundle(Bundle)而不是此方法,因为Bundle类提供了一个类型安全的API,允许您在编组时避免神秘的类型错误.

因此,我可以迭代我的Map中的每个条目并将其放入Bundle中,但我仍然在寻找一种更聪明的方法.我缺少Android SDK中的任何方法吗?

目前我这样做:

final Bundle bundle = new Bundle();
final Iterator<Entry<String, String>> iter = links.entrySet().iterator();
while(iter.hasNext())
{
    final Entry<String, String>  entry =iter.next();
    bundle.putString(entry.getKey(), entry.getValue());
}
parcel.writeBundle(bundle);
Run Code Online (Sandbox Code Playgroud)

android bundle parcelable

62
推荐指数
4
解决办法
3万
查看次数

android中使用的Parcelable和Serialization有什么区别

我想知道确切的,

  1. 我是应该使用parcelable还是serialization技术将数据从一个活动发送到另一个活动?
  2. 是否必须使用其中一个将数据从一个发送到另一个?
  3. 我应该什么时候使用它们?
  4. 以及它们与java方面的性能之间的确切差异.

提前致谢.


 public class GetSetClass implements Serializable {
    private int dt = 10;

    /** pass any object, drwabale */
    public int getDt() {
        return dt;
    }

    public void setDt(int dt) {
        this.dt = dt;
    }
}
Run Code Online (Sandbox Code Playgroud)

android serializable parcelable

32
推荐指数
3
解决办法
2万
查看次数

是否可以实现在活动之间传递数据?

我想提高我的应用程序的性能.我想到的一件事是用parcelable替换所有可序列化的intent-bundle参数.

我找到了这个主题:使用Parcelable而不是序列化对象的好处

有人从一本书中指出,parcelable只是用于进程间通信吗?这可能不是最新的了,对吧?因为从技术上讲,它至少是可能的.

然后还有一个声明,即parcelable不可靠,因为实现因设备而异,这当然是一种杀戮特性,因为我希望它始终工作,所有设备和apis,从API 7开始.

我还阅读了一些关于使用Externalizable或实现自定义协议的建议......但我不明白,为什么Parcelable不可靠,为什么Android开发人员会对所有设备无法解决的问题进行嗡嗡声?或者评论不正确?

是否值得实施Parcelable?我坚持使用Serializable吗?或者是自定义序列化/ Externalizable正确的方法?

请不要告诉我"只是尝试",我没有时间,特别是检查Parcelable是否可靠(也没有足够的设备)...经验被问到...

谢谢.

PS也不要说我"Serializable对于大多数情况都是可以接受的"我知道,它确实可以接受但是我有时间并且想要将它与Parcelable(或其他东西)一起使用,如果这改善了用户体验.

performance serialization android parcelable

5
推荐指数
1
解决办法
2143
查看次数

在活动之间传递自定义类实例

我有一个自定义类'Game',我在活动代码的顶部初始化.然后我去另一个活动,通常我通过arraylists等但我想转移到我的自定义类.....

我的自定义类'游戏'是一堆字符串和arraylists与getter和setter mehtods.

我得到了

游戏不是可分割或可序列化的对象

我尝试将其添加到意图时出错.我能在这做什么?

//Init Instance of Game class
Game newGame = new Game();
Run Code Online (Sandbox Code Playgroud)

设置我的听众.它适用于

//Setup onclick listeners
text.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent i = new Intent(this_Activity.this, next_Activity.class);
        i.putExtra("players", myList);
        i.putExtra("newGame", (Parcelable) newGame);
        startActivityForResult(i, 0);
    }
});
Run Code Online (Sandbox Code Playgroud)

serialization android parcelable android-intent

-1
推荐指数
1
解决办法
2885
查看次数