2013-08-06 3 views
1

나는 내가안드로이드 : 위치

ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>(); 
에 (현재 위치 또는 무언가를 추가라는 버튼 같은) GPS에서 내 현재 좌표를 저장 관리해야하는리스트 뷰가 포함되어 해시 맵의 ArrayList를 저장할 수 없습니다

이 목록을 저장하려고하고있어 응용 프로그램을 시작한 후에 사용할 수 있습니다. 나는에서 onCreate()에서 다음

@Override protected void onSaveInstanceState(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    savedInstanceState.putSerializable("savedLocations", list); 
    super.onSaveInstanceState(savedInstanceState); 
} 

그리고

if (savedInstanceState != null) { 
    list = (ArrayList<HashMap<String,String>>) savedInstanceState.getSerializable("savedLocations"); 
} 

같은 모든 다른 일을 시도하지만, savedInstanceState은 항상 null이며, 나는 다시 버튼을 누르면 응용 프로그램이 종료 후에는로드되지 않습니다 그 목록. 내가 어떻게 이것을 달성 할 수 있었는지에 대한 아이디어가 있습니까?

onSaveInstanceState는 홈 버튼을 클릭하고 다른 응용 프로그램으로 이동하는 것처럼 응용 프로그램을 종료 한 후에 만 ​​호출된다는 것을 알고 있습니다.

+0

meta : 코드의 서식을 지정하기 위해 4 개의 공백을 사용하므로 들여 쓰기와 줄 바꿈이 보존됩니다. – dst

답변

0

onSavedInstance 상태는 활동이 일시 중지 된 시점과 다시 시작된 시점 사이의 상태를 저장하기위한 것입니다. 예 : 장치가 회전합니다. 활동이 완료되면 (예를 들어 앱을 종료 할 때) 데이터가 손실됩니다.

데이터를 영구 저장하려면 공유 환경 설정 또는 데이터베이스를 사용할 수 있습니다.

공유 환경 설정은 실제로 단일 값, 일반적으로 사용자가 선택한 설정 또는 환경 설정 용으로 만 설계되었습니다.

데이터를 유지하려면 데이터베이스를 사용하는 것이 좋습니다. 처음으로 데이터베이스를 사용하는 데 약간의 어려움이있을 수 있습니다.

ActiveAndroid 라이브러리를 제안합니다. 그것은 많은 것들을 추상화하고 훌륭한 API를 가지고 있습니다. 사용하기가 매우 쉽습니다.

데이터를 데이터베이스에 저장해야합니다.

+0

나는 ActiveAndroid 라이브러리에 시도해보고 나중에 약간의 피드백을 줄 것이다 – trololz0r

+0

불행히도, 나는 데이터베이스를 만들고 내 데이터를 저장하지 못했습니다. 나는 많은 자습서를 시도하고 아무도 나를 위해 일하지 않았다. – trololz0r

+0

글쎄, 정말로 당신이 시도한 라이브러리와 관련된 질문이나 SQL 데이터베이스가 일반적으로 분리되어있다. 위의 질문에 대한 답을 얻었습니다. ActiveAndroid에 문제가있는 경우 새로운 질문을 게시하고 알려주세요. 내가 도울 수 있는지 알게 될거야. – athor