我是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)”元素。我会非常感谢任何建议和帮助
答案 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 playerName
。 getStringArrayListExtra
代码是正确的。