2015-09-09 31 views
0

在問這裏之前,我首先搜索如何將arraylist從意圖傳遞到另一個意圖。由於在SO上發佈的一篇文章,我想我找到了一個方法來做到這一點。問題將arraylist從意圖傳遞到另一個

事情是,當我嘗試顯示我的目標活動的數組列表中的元素時,我只獲得了我原來在離開活動中擁有的衆多元素之一。

爲了把它清楚,這是我在我的最前一頁活動代碼:

HashMap map = new HashMap<String,String>(); 

map.put("key1","value1"); 
map.put("key2","value2"); 

arrayList.add(map); 
Log.d("arrayList", String.valueOf(arrayList)); 

在logcat的,我有預期的元素:

D/arrayList:: [{"key1":"value1"},{"key2","value2"} 

然後,我追求這個:

Intent intent = new Intent(MyFirstActivity.this,MySecondActivity.class); 
intent.putExtra("arrayList",arrayList); 

現在,這是我的第二個活動,應該是收到的元素。

Intent intent = getIntent(); 
arrayList = (ArrayList<HashMap<String,String>>) getIntent().getSerializableExtra("arrayList"); 
Log.d("arraySecondActivity", String.valueOf(arrayList)); 

在logcat的,只是我的第二個項目是顯示:

D/arraySecondActivity: [{key2=value2}] 

,我不知道爲什麼...沒有人也許知道嗎?

謝謝!

+0

確保您的物品已添加到您的數據列表,然後您通過意圖傳遞 –

+0

如何?我的意思是,第一個項目沒有問題,我的第二個項目怎麼樣? – Navy07

回答

0

intent.putExtra(「arrayList」,arrayList);在你的代碼中這個錯誤。 序列化次前的數組列表像下面

嘗試此代碼

ArrayList<Object> object = new ArrayList<Object>(); 
Intent intent = new Intent(Current.class, next.class); 
Bundle args = new Bundle(); 
args.putSerializable("ARRAYLIST",(Serializable)object); 
intent.putExtra("BUNDLE",args); 
startActivity(intent); 

在next.class

Intent intent = getIntent(); 
Bundle args = intent.getBundleExtra("BUNDLE"); 
ArrayList<Object> object = (ArrayList<Object>) args.getSerializable("ARRAYLIST"); 
+0

它也不起作用。我得到了和以前一樣的結果。 – Navy07

+0

確保您的物品已添加到我的firstActivity中的數據列表 – sasikumar

+0

,我確保我的兩件物品通過logcat出現在我的數據列表中,因爲我認爲存在問題......但是我的兩件物品都顯示在那裏..我的主要問題是我不明白爲什麼我的第二個項目在我的第二個活動中很好地顯示,而我的第一個項目不是...... – Navy07

0

假設strinclude是整數的數組列表簡單。

ArrayList<Integer> strinclude=new ArrayList<Integer>(); 

活動1:

//Here I am sending the arraylist to Activity2 
Intent i=new Intent(MainActivity.this,ResultActivity.class); 
i.putExtra("include",strinclude); 
startActivity(i); 

活動2:

//Here I am recieving the arraylist from Activity1 
ArrayList<Integer> strinclude=new ArrayList<Integer>(); 
strinclude=(ArrayList<Integer>) getIntent().getSerializableExtra("include"); 

那它。

+0

是不是我已經寫過的? – Navy07

相關問題