android bundle存储并传递集合对象Map、List等

androd使用bundle在activity或者view之间传递数据,比如一个包含fragment的activity在创建fragment时,会用bundle传递信息以完成fragment的创建。

然而bundle所能接收的数据类型有限,不包括Map、List等集合类型,所以要传递这些类型就得另辟蹊径。

查找到bundle有方法bundle.putSerializable可以存储序列化对象,所以只需要将集合对象先封装在一个对象中然后传递,最终解封即可,步骤代码如下:

 * 因为bundle无法传递Map但可以传递单个对象,所以建立此类来包装map
 */

public class BundleData implements Serializable{
    private Map<String,NewsItem> newsItems;

    public Map<String,NewsItem> getNewsItems() {
        return newsItems;
    }

    public void setNewsItems(Map<String,NewsItem> newsItems) {
        this.newsItems = newsItems;
    }
}
public static final String BUNDLE_DATA = "bundleData";
private BundleData bundleData;
bundle.putSerializable(BUNDLE_DATA, bundleData);
bundleData = (BundleData) getArguments().getSerializable(BUNDLE_DATA);



猜你喜欢

转载自blog.csdn.net/m0_37828249/article/details/79466671
今日推荐