2012-06-04 137 views
1

我想一個List<Map<String, String>>傳遞到另一個活動。如何爲它實現Parcelable?實現Parcelable對於List <地圖<String,字符串>>

+1

http://stackoverflow.com/questions/4141944/android-pass-listgeopoint-to-another-activity –

+0

難道你不只是你的列表添加到意圖(與putExtra( ))當你打電話給你的活動 – gideon

+0

@Gaara:這不符合我的需求。 – Emerald214

回答

1

你可以擴展Map和實施Parcelable它。當寫包裹,你可以寫元素算作第一int,然後遍歷條目,並將它們添加一個接一個,如:

destParcelable.writeInt(size()); 
for (final Entry<String, String> entry : getEntries()) { 
    destParcelable.writeString(entry.getKey()); 
    destParcelable.writeString(entry.getValue()); 
} 

從包裹閱讀只是閱讀第一int(這將是您的條目計數時, ),並開始一個循環讀取鍵和值逐一:

final int size = srcParcelable.readInt(); 
for (int i=0; i<size; i++) { 
    put(srcParcelable.readString(), srcParcelable.readString()); 
} 

而且我相信有加Parcelables並捆綁的列表的方法,由於地圖是一個parcelable現在也不會出現任何問題。

1

你可以這樣說: 1.活動的構造函數,你想通過這個列表。

public Class CalledActivity extends Activity{ 

List<Map<String, String>> list; 
public calledActivity(List<Map<String, String>> list){ 
this.list=list; 
} 
} 

2.從活動中調用此構造函數,您想從中傳遞該列表。

參見參考這個問題。 android activity class constructor working

相關問題