我是 Android 新手,我有一个关于 Intent 的问题。我想通过使用 Intent 在两个 Activity 之间传递一个字符串ArrayList。我已经尝试过:
`
ArrayList<String> playerName = new ArrayList<>();
Intent intent = new Intent(this,Game.class);
intent.putStringArrayListExtra("Player",playerName);
startActivity(intent);`
然后我尝试这样接收我的 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());
关于java - 如何在 Android 中的两个 Intent 之间传递 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43791335/