繁体   English   中英

如何在Android中的两个意图之间传递arrayList

[英]How to pass an arrayList between two intent in Android

我是Android的新手,我对意图有疑问。 我想通过使用意图在两个活动之间传递一个String ArrayList。 我已经试过了:

`
ArrayList<String> playerName = new ArrayList<>();
Intent intent = new Intent(this,Game.class);
intent.putStringArrayListExtra("Player",playerName);
startActivity(intent);`

然后我试图接受我的意图:

 ArrayList<String> playerNameList= new ArrayList<>();
 playerNameList = getIntent().getStringArrayListExtra("Player");
 int listSize = playerNameList.size();
 StringBuilder str = new StringBuilder(" ");
 str.append(listSize);
 textView.setText(str);
 StringBuilder str1 = new StringBuilder(" ");
 str1.append(playerNameList.get(2));
 textView2.setText(str1);`

我可以获得正确的listSize; 但是我无法获取我的arrayList的任何元素。 我总是得到“ index(0)”元素。 我将不胜感激任何建议和帮助

您可以通过使用Gson轻松地

Intent intent = new Intent(this,Game.class);
intent.putExtra("Player",new Gson().toJson(playerName));
startActivity(intent);

在Game.class

ArrayList<String> playerNameList = playerNameList = new ArrayList<>();
String str =  getIntent().getStringExtra("Player");
playerNameList = new Gson().fromJson(str,new TypeToken<ArrayList< String >>(){}.getType());

检查您的代码以将数据添加到ArrayList playerName putStringArrayListExtra为Intent并将getStringArrayListExtra从Intent转换为正确的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM