2017-05-04 70 views
0

我是Android新手,我有一個關於intent的問題。我想通過使用intent在兩個活動之間傳遞一個String ArrayList。我曾經嘗試這樣做:如何在Android中的兩個intent之間傳遞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的任何元素。我總是得到「索引(0)」元素。我將非常感激的任何建議和幫助

+1

重複的http://stackoverflow.com/questions/2091465/how-do-i-pass-data-between-activities-in-android-application?rq=1 –

+1

可能的重複[如何傳遞數據在Android應用程序中的活動?](http://stackoverflow.com/questions/2091465/how-do-i-pass-data-between-activities-in-android-application) – Bobulous

+0

我想我能夠開始意圖和發送數據。因爲我可以得到我的arrayList的大小。問題在於訪問數據。 – Aybars

回答

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()); 
0

檢查你的代碼,以將數據添加到ArrayList的playerName。來自Intent的代碼putStringArrayListExtra到Intent和getStringArrayListExtra是正確的。

相關問題