【问题标题】:How to pass an arrayList between two intent in Android如何在Android中的两个意图之间传递arrayList
【发布时间】:2017-05-05 15:24:59
【问题描述】:

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

【问题讨论】:

标签: java android android-intent arraylist


【解决方案1】:

您可以使用 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());

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-18
      • 2016-04-05
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多