通過Bundle傳遞Map類型數據

可能通過其他更好的方法可以傳遞,先記錄我知道的這個方法吧。大家指正和幫忙改進。


大家知道Bundle對象只能傳遞一些基本類型和字符串之類的,不能直接傳入Map類型的數據,所以就暫時在情急之下想了一個複雜的方法,雖然不好,但有效。

但是隻能傳遞參數都爲基本類型或者String類型的。


Map<String, String[]> map;
Bundle bundle = new Bundle();
Set<String> keySet = map.keySet();
Iterator<String> iter = keySet.iterator();                    
while(iter.hasNext())
{
    String key = iter.next();
    bundle.putStringArray(key, map.get(key));
}
intent.putExtra("map", bundle);


獲取的方法如下:

Map<String, String[]> map;
Bundle bundle = intent.getBundleExtra("map");
Set<String> keySet = bundle.keySet();   // 得到bundle中所有的key
Iterator<String> iter = keySet.iterator();
while(iter.hasNext())
{
    String key = iter.next();
    map.put(key, bundle.getStringArray(key));
}




暫時寫了一個方法,知道可以實現一些序列號接口或者Parcelable接口,但是還沒有時間來實驗,等以後繼續更新


發佈了36 篇原創文章 · 獲贊 4 · 訪問量 48萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章