2012-06-14 2 views
2

첫 안드로이드 앱을 만들고 있습니다. 하나의 액티비티에 문자열 배열을 저장하고 두 번째 액티비티에 그 문자열을리스트로 표시하려고합니다. API 8 안드로이드 플랫폼 2.2 사용하고 그래서 putStringSet() 사용할 수 없습니다. 내 데이터를 내 응용 프로그램에 텍스트 파일로 저장할 수있는 방법이 있습니까? 다음 사용자가 새 문자열을 추가 할 때마다 해당 파일에 새 줄을 추가 할 수 있습니다. 그리고 목록보기를 만드는 동안 새로운 줄을 기준으로 구문을 분석하고 문자열 배열을 만들 수 있습니다. 도움 주셔서 감사합니다.내 Android 데이터에 앱 데이터를 어떻게 저장해야합니까?

답변

3

를 사용하여 파일 처리. 초보자에게도 사용하기 쉽고 목적에 따라 효율적입니다.

http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

+0

그 내부 저장소를 사용했습니다. 하지만 파일에 글을 쓸 때마다 오래된 데이터가 삭제됩니다. 이전 데이터를 원합니다. – Piscean

+0

잘못된 파일 모드로 파일을 여는 중입니다. 매번 새 파일을 만들고 기존 저장된 모든 데이터를 잘라냅니다. APPEND 모드에서 열면 데이터가 반드시 유지됩니다. – Swayam

+0

FileOutputStream fos = openFileOutput (FILENAME, Context.MODE_APPEND); – Swayam

0

하지만 putStringArray 또는 putStringArrayList를 묶음으로 묶을 수 있습니다.

번들은 인 텐트를 통해 전달됩니다.

은 ->http://developer.android.com/reference/android/os/Bundle.html#putStringArray(java.lang.String은 java.lang.String의는 [])

그런 다음 파일로 저장하려는 경우, 당신은이 방법을 사용해야합니다 : http://www.java-forums.org/advanced-java/13852-saving-arraylist-file.html

을하지만 난 당신이 선호하는 생각 String 목록을 직접 전달하십시오.

2

시작하기 전에 사용 의도에 putStringArrayListExtra("id", ArrayList list) 메소드가 있습니다. 그런 다음 의도 된 활동에서 시작된 활동에서 getStringArrayList("id")을 사용하십시오. 예를 들어

: NewActivity에서 onCreate에 그런

Intent intent = new Intent(MainActivity.this.getApplicationContext(), NewActivity.class); 
intent.putStringArrayListExtra("id", yourArrayList) 
MainActivity.this.startActivity(intent); 

() 메소드

ArrayList<String> list = getIntent().getExtras().getStringArrayList("id"); 
+0

이 문자열 arraylist는 사용자 기록과 같아야합니다. 사용자가 무엇을 하든지 저장하고 목록에 표시해야합니다. 이 방법으로 우리는 그 의도 이전에 만들어 질 어레이리스트를 보낼 것입니다. 어떤 사용자가 만들었던 오래된 문자열이 있다면 어떨까요? 어떻게 가져올 수 있니? – Piscean

+0

그런 다음 파일에 텍스트를 작성한 다음 ArrayList로 구문 분석하고 원하는대로 전달해야합니다. – Demonick

0

은 왜 그렇게 할 파일을 사용하고 있습니까? 그냥 sharedPreferences 및 sqliteDb를 확인하십시오 그것은 당신을 위해 일할 수도 있습니다 .. 공유 환경 설정은 다루기 쉽습니다

+0

나는 sqliteDb를 시도하지 않았다. 하지만 sharedPreferences를 확인했습니다. 내 경우 sharedPreferences는 좋은 해결책이 아닙니다. – Piscean

관련 문제