2011-01-12 4 views
10

나는 내 안드로이드 애플 리케이션에서 직렬화해야하는 기본 기능을 가지고 있습니다. 사용자는 ArrayList에 몇 가지 값을 추가하고이 작은 옵션에 대해 데이터베이스를 사용하지 않도록 직렬화하고 물론 유용하게 보이기 때문에 serialize하는 방법을 배웁니다 (저는 초보자입니다). 어쨌든 사용자가 arraylist에 어떤 것을 저장하고 프로그램이 종료되면 프로그램이 다시 시작되고 사용자는 저장된 데이터를 볼 수 있습니다. 어떻게 구현할 수 있습니까? 코드 스 니펫이나 유용한 링크를 제공 할 수 있습니까?android에서 ArrayList를 serialize하는 방법

감사합니다.

+1

거의 같아야합니다. http://stackoverflow.com/questions/3588932/problem-serializing-and-deserializing-arraylist 그러면 SD 카드에 기록해야합니다. – Xorlev

+0

시리얼 라이즈 한 후 정확히 어디에 저장하고 싶습니까? 포함 된 옵션 : 기본 설정, Db (거부 한 항목), 직접 파일 시스템. – xandy

+0

가장 쉬운 건 SDCard의 파일 시스템으로 직렬화하는 것입니다. – chubbsondubs

답변

12

당신은 이제 당신이 그 ArrayList<E> 만들 때 에 Serializable을 사용자 정의 빈 클래스하여이 작업을 수행하고 구현할 수 있습니다 여기에

http://flexjson.sourceforge.net

그렇게하는 방법을 블로그 게시물입니다 클래스는 Serializable.

예 :

Class dataBean implements Serializable 
{ 
    public String name; 
} 

ArrayList<dataBean> dataBeanArrayList = new ArrayList(); 

그래서 dataBeanArrayListSerializable이되며 Intent 사이에 전달할 수도 있습니다.

+0

고마워요 @ 메가! –

0

flexjson을 사용하여 데이터를 파일로 직렬화하는 것이 좋습니다. 그런 다음 해당 라이브러리를 사용하여 다시 읽을 수 있습니다. 이것은 스트림의 잠재적 인 다른 버전의 오브젝트에로드 할 수있는 직렬화에 비해 몇 가지 장점이 있습니다. ObjectInputStream을 사용하면 매우 조심해야하며 솔직히 모든 것이 잘 작동하는 것을 본 적이 없다.

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

+0

JSON에 인터넷 연결이 필요하지 않습니까? 나는 가능한 사용자에게서 그걸 요구하지 않을 것이다. – madcoderz

+2

아니요 JSON은 XML과 같은 데이터의 단순한 텍스트 형식입니다. 인터넷 연결없이 사용할 수 있습니다. 앱이 파일 시스템에 쓸 수있게해야합니다. – chubbsondubs

관련 문제