如何在Android中的两个intent之间传递一个arrayList

时间:2017-05-04 19:30:20

标签: java android android-intent arraylist

我是Android的新手,我对意图有疑问。我想通过使用intent在两个活动之间传递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)”元素。我会非常感谢任何建议和帮助

2 个答案:

答案 0 :(得分:2)

你可以通过使用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());

答案 1 :(得分:0)

检查代码以将数据添加到ArrayList playerNameputStringArrayListExtra和Intent的getStringArrayListExtra代码是正确的。