相关疑难解决方法(0)

在下一个活动中检索时,置于Intent extra中的LinkedList会重新转换为ArrayList

我正在观察wrt传递可序列化数据作为intent extra的行为是非常奇怪的,我只想澄清是否有一些我不会错过的东西.

所以我试图做的是在ActivtyALinkedListintent我开始下一个活动而创建一个实例- ActivityB.

LinkedList<Item> items = (some operation);
Intent intent = new Intent(this, ActivityB.class);
intent.putExtra(AppConstants.KEY_ITEMS, items);
Run Code Online (Sandbox Code Playgroud)

onCreateActivityB,我试图获取LinkedList额外如下-

LinkedList<Item> items = (LinkedList<Item>) getIntent()
                             .getSerializableExtra(AppConstants.KEY_ITEMS);
Run Code Online (Sandbox Code Playgroud)

在运行这个时,我ClassCastExceptionActivityB上面的一行中反复进入.基本上,例外说我收到了ArrayList.一旦我改变了上面的代码来接收一个代码ArrayList,一切都运行得很好.

现在我不能从现有文档中找出这是否是Android传递可序列化List实现时的预期行为.或者,或许,我正在做的事情存在根本性的错误.

谢谢.

android android-intent

26
推荐指数
2
解决办法
5934
查看次数

序列化/反序列化LinkedHashMap(android)java

所以我想将LinkedHashMap传递给intent.

//SEND THE MAP
Intent singlechannel = new Intent(getBaseContext(),singlechannel.class);
singlechannel.putExtra("db",shows1);//perase to
startActivity(singlechannel);

//GET THE MAP
LinkedHashMap<String,String> db = new LinkedHashMap<String,String>();   
db=(LinkedHashMap<String,String>) getIntent().getSerializableExtra("db");
Run Code Online (Sandbox Code Playgroud)

这个就像HashMap的魅力一样.但是使用LinkedHashMap我遇到了一个问题,我在这里遇到了运行时错误

  db=(LinkedHashMap<String,String>) getIntent().getSerializableExtra("db");
Run Code Online (Sandbox Code Playgroud)

我没有得到HashMap的错误.

我还收到一个警告"类型安全:从Serializable到LinkedHashMap的未经检查的强制转换"但我也对HashMap发出了警告.任何想法.非常感谢任何帮助

我也刚看到这个. https://issues.apache.org/jira/browse/HARMONY-6498

java serialization android linkedhashmap

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

将LinkedHashMap <Object,String>从一个活动传递到另一个活动

我将LinkedHashMap从一个Activity传递到另一个Activity时遇到了问题.我提到了所有相关的帖子,没有一个可以解决我的问题.请帮帮我.

活动1:

Intent mapIntent = new Intent(this,GMap.class);
LinkedHashMap<TravelMode, String> polyPoints=(LinkedHashMap<TravelMode, String>) gData.values().toArray()[0];
mapIntent.putExtra(EXTRA_MESSAGE, polyPoints);
startActivity(mapIntent);
Run Code Online (Sandbox Code Playgroud)

活动2:

LinkedHashMap<Object,String>polypoint = (LinkedHashMap<Object, String>)poly.getSerializableExtra(EXTRA_MESSAGE);
Run Code Online (Sandbox Code Playgroud)

这是我在执行此操作时遇到的错误.

错误:

 ClassCastException: Cannot cast java.util.HashMap (id=830032266720) to java.util.LinkedHashMap          
Run Code Online (Sandbox Code Playgroud)

类TravelMode:

  class TravelMode implements Serializable{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public String travelMode;

    /**
     * @return the travelMode
     */
    public String getTravelMode() {
        return travelMode;
    }

    /**
     * @param travelMode the travelMode to set
     */
    public void setTravelMode(String travelMode) {
        this.travelMode = travelMode;
    }

    public TravelMode(String …
Run Code Online (Sandbox Code Playgroud)

java android android-intent

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