`

android_巧用SharedPrefrences储存ArrayList等Collection的实现类

 
阅读更多
/**
 * collection 里的类必须要implements Serializable,因为ObjectOutputStream的缘故
 */
public class SPUtils {
    public static final String SP_NAME="needYourName";//您的SharedPreferences的名字
    public static void setSPCollection(Context context, Collection collection, String collectionName) throws IOException {
        SharedPreferences.Editor edit=getSharedPreferences(context, SP_NAME).edit();
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
        objectOutputStream.writeObject(collection);
        String string = new String(Base64.encode(byteArrayOutputStream.toByteArray(), Base64.DEFAULT));//利用Base64防止乱码
        edit.putString(collectionName,string);
        edit.apply();
        objectOutputStream.close();
    }
    public static Collection getSPCollection(Context context, String collectionName) throws IOException, ClassNotFoundException {
        String string = getSharedPreferences(context, SP_NAME).getString(collectionName, "");
        if (TextUtils.isEmpty(string)||TextUtils.isEmpty(string.trim())){
            return null;
        }
        byte[] decodeBytes = Base64.decode(string.getBytes(), Base64.DEFAULT);
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(decodeBytes);
        ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
        Collection collection = (Collection) objectInputStream.readObject();
        objectInputStream.close();
        return collection;
    }
    public static SharedPreferences getSharedPreferences(Context context,String spName){
        return context.getSharedPreferences(spName, Context.MODE_PRIVATE);
    }
}

不懂可以提问,但或许度娘更适合你呢,开个玩笑,今天是大年初一,还敲代码,我也是醉了,实在是无聊的慌呀。
也记录一下,20岁快结束了,好好努力,加油。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    JSP_使用_Session_ArrayList_实现购物车程序

    根据给定的信息,本文将详细解释如何在Java Server Pages (JSP)中使用`HttpSession`和`ArrayList`来实现一个简单的购物车程序。本文主要分为以下几个部分:商品类(`Goods`)的设计、购物车功能实现的具体步骤、以及...

    arr.rar_C# ArrayList 排序_arraylist_arraylist 排序_数组排序

    在C#编程语言中,ArrayList是一个非常常用的动态数组类,它是System.Collections命名空间的一部分。ArrayList提供了灵活的容量扩展和操作,但与固定大小的一维数组相比,它在内存管理和性能方面有所不同。本篇文章将...

    Android ArrayList关键字查询.rar

    在Android中,我们通常用它来存储自定义对象,如用户信息、商品详情等。为了实现关键字查询,我们需要对ArrayList中的每个对象进行遍历,检查其属性(如名称、描述等)是否包含查询关键字。 1. **创建关键词查询...

    Samsung_Lesson_3.1_ArrayList_ListView:在 Android ListView 项中使用 ArrayList 的示例

    - ArrayList是Java中的一个容器类,继承自AbstractList,并实现了List接口。它允许存储和操作有序的对象集合,支持动态增长。 - ArrayList内部基于数组实现,因此可以通过索引来访问元素,其随机访问性能优异。 2...

    android arraylist 实现 listview

    总结来说,实现"android arraylist 实现 listview"需要掌握ArrayList的使用,自定义Adapter的设计,Activity间数据传递,以及ListView的交互功能扩展,包括ContextMenu、OptionsMenu和长按事件的处理。这不仅涉及到...

    Android:ArrayList学习实例

    在Android开发中,ArrayList是一个非常基础且常用的集合类,它继承自Java的AbstractList,并实现了List接口。ArrayList主要用于存储和管理有序的元素序列,它的核心特点是动态扩容,可以在运行时根据需要自动增加...

    JavaMap.rar_arraylist map_collection_java map_javamap_地图 java

    Java Map集合类是Java编程语言中用于存储键值对数据结构的重要接口,它与ArrayList、LinkedList等属于Java集合框架的一部分。在Java中,Map接口不继承Collection接口,而是独立存在,因为它代表的是键值对(key-...

    ArrayList的实现原理

    ArrayList是Java集合框架中常用的动态数组,它是List接口的一个实现,允许存储包括null在内的所有元素。ArrayList的主要特点是通过数组来存储元素,提供了丰富的操作方法,包括添加、删除、修改和查询等。下面是...

    java集合类详解(set list ArrayList等java集合类详述)

    Collection 接口没有实现类,因此需要通过其子接口来实现。 Set 是一个不能包含重复元素的集合,SortedSet 是一个按照升序排列元素的 Set。List 是一个有序的集合,可以包含重复的元素,并提供了按索引访问的方式。...

    ArrayList的一个C++类模板实现

    不过,根据标题和描述,这里我们讨论的是一个用C++实现的ArrayList类模板,它采用了双层散列技术来提高性能。这个实现旨在提供高效的数据存储和操作,特别是在处理大量数据时。 首先,让我们深入了解ArrayList的...

    ListView显示单列ArrayList_demo

    2. 使用 ArrayList 存储数据:ArrayList 是 Java 中的一种集合类,用于存储对象的集合。我们可以使用 ArrayList 来存储数据,然后将其传递给 ArrayAdapter。 3. 使用 ArrayAdapter 将数据显示在 ListView 中:...

    自定义表格_自定义表格_android_TableView_

    - 可以使用`ArrayList&lt;ArrayList&lt;String&gt;&gt;`或者自定义的数据模型类(如`TableDataModel`)来存储数据。 4. **单元格自定义** - 单元格可以是简单的`TextView`,也可以是包含多个元素的复杂布局,如`ImageView + ...

    模拟arraylist底层实现

    在Java中,ArrayList是一种常用的集合类,提供了许多实用的方法来操作集合数据,而本文则尝试模拟ArrayList的底层实现,通过自定义集合实现类MyArrayList,来实现基本的集合操作。 模拟ArrayList的add方法 在...

    so_java_android_

    总结来说,"so_java_android_"这个主题涉及到使用Java编程和Android SDK中的EditText、ListView等组件,通过监听文本变化事件,实现实时搜索本地数据的功能。这个过程涉及到数据过滤、Adapter更新以及用户体验优化等...

    浅析ArrayList内部实现

    浅析ArrayList内部实现 ArrayList是Java集合框架中的一种常用数据结构,能够存储任意多个对象,并且可以自由扩展,弥补了数组的定长的缺陷。下面我们将深入探讨ArrayList的内部实现机理。 ArrayList的内部实现机理...

    Android_上百实例源码分析以及开源分析_集合打包3

    在Android中,常见的集合类有ArrayList、HashMap等,它们在应用中扮演着数据存储和处理的重要角色。打包这些集合类的源码分析可能涉及如何优化内存使用、提高遍历效率、避免并发问题等方面的知识。 再者,开源分析...

    Android_上百实例源码分析以及开源分析_集合打包4

    在Android开发中,集合类(如ArrayList、LinkedList、HashMap等)的使用非常频繁。了解它们的底层实现和性能特征对于编写高效代码至关重要。例如,ArrayList适合于随机访问,LinkedList适合于插入和删除操作,而...

    源码解析jdk7.0集合:ArrayList的底层实现原理.pdf

    在探讨 JDK 7.0 中 ArrayList 的底层实现原理之前,首先需要了解 ArrayList 作为 Java 集合框架中 List 接口的动态数组实现类的基本概念。ArrayList 提供了一种存储有序、可重复、允许为 null 的数据结构,并且该...

    bada2.0培训_2_2_Base_Collection

    除了基本的集合类和接口,Base Collection还定义了辅助接口,如`IHashCodeProvider`和`IComparer`,用于实现哈希码生成和对象比较,这些功能对于优化数据处理和算法执行至关重要。 综上所述,bada2.0的Base ...

    2048xyx_android开发_android_

    4. **数据结构**:为了存储和操作游戏状态,可以使用二维数组或ArrayList的ArrayList。每个单元格对应数组的一个元素,保存当前的数字值。 5. **游戏逻辑**:2048的核心算法是合并相邻的相同数字。当用户滑动时,你...

Global site tag (gtag.js) - Google Analytics