2011-01-12 29 views
10

tôi có một chức năng cơ bản yêu cầu serializing trong ứng dụng Android của tôi. Người dùng sẽ thêm một số giá trị vào ArrayList và tôi muốn tuần tự hóa nó để tránh sử dụng cơ sở dữ liệu cho tùy chọn nhỏ này và dĩ nhiên là LEARN cách serialize (tôi là người ăn xin) vì nó có vẻ hữu ích. Dù sao người dùng lưu một cái gì đó trong danh sách mảng, chương trình sẽ tắt, chương trình sẽ khởi động lại và người dùng có thể xem dữ liệu đã lưu. Làm thế nào tôi có thể thực hiện điều này? Bạn có thể cung cấp một số đoạn mã hoặc một liên kết hữu ích không?cách serialize ArrayList trên android

Cảm ơn rất nhiều !!

+1

Nó phải giống nhau, http://stackoverflow.com/questions/3588932/problem-serializing-and-deserializing-arraylist, sau đó bạn cần phải ghi vào SDcard từ đó. – Xorlev

+0

Sau khi bạn serialize, nơi chính xác bạn muốn lưu các công cụ? Các tùy chọn bao gồm: Sở thích, Db (mà bạn đã từ chối), Trực tiếp vào Hệ thống tệp. – xandy

+0

Điều dễ nhất là sắp xếp nó vào hệ thống tập tin trên SDCard. – chubbsondubs

Trả lời

12

Bạn có thể làm điều này bằng lớp bean tùy chỉnh và thực hiện Serializable để rằng vì vậy bây giờ khi bạn tạo ArrayList<E> đó lớp học là Serializable.

Ví dụ:

Class dataBean implements Serializable 
{ 
    public String name; 
} 

ArrayList<dataBean> dataBeanArrayList = new ArrayList(); 

Vì vậy, dataBeanArrayList hiện là Serializable và bạn cũng có thể chuyển số này giữa Intent.

+0

Cảm ơn @Megha! –

0

Tôi khuyên bạn nên sử dụng flexjson để tuần tự hóa dữ liệu vào tệp. Sau đó, bạn có thể đọc lại bằng thư viện đó. Điều này có một số lợi thế hơn serialization mà là có thể tải dòng của bạn trở lại vào các phiên bản khác nhau tiềm năng của các đối tượng của bạn. Sử dụng ObjectInputStream bạn phải rất cẩn thận, và thẳng thắn mà tôi chưa bao giờ thấy nó hoạt động tốt như thế.

http://flexjson.sourceforge.net

Đây là một bài viết trên blog như thế nào để làm điều đó:

http://wrongnotes.blogspot.com/2010/09/flexjson-meet-android.html

+0

JSON có cần kết nối internet không? Tôi sẽ không yêu cầu điều đó từ một người dùng có thể. – madcoderz

+2

Không JSON nào chỉ là định dạng văn bản đơn giản cho dữ liệu như XML. Bạn có thể sử dụng nó mà không cần kết nối internet. Bạn sẽ cần cho phép ứng dụng của bạn ghi vào hệ thống tệp. – chubbsondubs