마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

@@@@Spinner default값을 이전에 선택했던 값으로 설정하고 싶어요!!!@@@@@@@@@@@

0 추천
앱을 시작하거나 spinner가 없는 다른화면에서 spinner가 있는 화면으로 이동 할 때 선택되어있는 default값을 설정하고 싶습니다.

 

Spinner가 이전에 선택한 값을 화면이 바뀌거나 앱을 다시시작해도 가지고 있도록 하기 위한 방법은 무엇이 있을까요?

 

여러분의 도움이 절실합니다...
kmh1230 (640 포인트) 님이 2015년 2월 24일 질문

2개의 답변

+1 추천
 
채택된 답변
anci (19,950 포인트) 님이 2015년 2월 24일 답변
kmh1230님이 2015년 2월 24일 채택됨
감사합니다.
혹시 spinner.setselection() 으로 이전의 값 유지하는 방법은 없을까요?
spinner.setselection() 라면 괄호안에 해당 스피너 position값을 입력해서 체크하시려는건가요? 그러면 spinner 쪽에서 선택한 포지션값[int형]을 저장하세요..새로 변수를 만들으셔도되고. 어찌됐든 앱이 종료되거던 아니던 값을 저장해야 하니 sharedpreference로 스피너에서 선택한 값을 저장하고, 스피너 띄울 때  spinner.setselection(저장된값); 이런식으로 하면 되지 않을까요?
감사합니다. 알려주신 곳에서 실마리를 찾았습니다.
setselection()안에는 int형만 들어갈 수 있습니다. 그래서 spinner값을 int로 저장해서 setselection안에 입력했더니 되었습니다.
 화면이 이동하는 과정에서는 이전의 값을 잘 유지하더니, 앱이 종료되고 다시 실행될 때는 이전의 값을 가져오지 못하네요.. 또 oncreate에서 걸리는 것 같습니다. 아니면 앱이 종료되고 다시 시작될 때 이전의 실행과정에서의 spinner값을 기억 못할 수 있다고 생각합니다..
네, sharedpreference는 int,string,boolean..등등 저장할 수 있습니다.
현재 oncreate가 어떤상태인지 모르겠지만, 앱이 종료되고 다시 실행할 때를 대비해 값을 저장하는 용도로 sharedpreference를 사용하는데, 종료후 다시 값을 불러오지 못한다는 건 해당 int값이 저장이 안될 가능성도 있구요..
저같은 경우엔 라디오버튼 position값을 저장해서 앱이 종료되도 마지막으로 체크한 값이 유지되게끔 만들었습니다.
화면이 이동하는 과정이 액티비티가 바뀌는건지 아님 단순히 한 액티비티 내에서 listview만 갱신된건지 모르겠지만, 스피너로 선택을 할 때 그 값을 저장해야 합니다. 저장과 불러오기를 확실하게 해야 합니다. 저도 처음 몇번썼을 때 저장도 안돼고 그랬었어요...일단은 값이 저장되었는지 그 여부부터 onCreate든 어디든 확인을 하시는게 좋습니다. log값을 찍으셔도 좋고 toast로 띄우셔도 좋고.. 이전에선택했던 값이 새로 앱을 재시작할 때 저장이 되어있는지부터 확인해보세요.
+1 추천
SharedPreference 를 이용하시면 될 듯 하군요

예제는 아래 블로그에 잘 정리되어 있습니다.

http://androidhuman.tistory.com/193
Gradler (109,780 포인트) 님이 2015년 2월 24일 답변
감사합니다.
혹시 spinner.setselection() 으로 이전의 값 유지하는 방법은 없을까요?
이전의 값을 유지하기 위해서는 당연히 setSelection()으로 해야지요
그러기 위해서는 이전의 값을 어딘가에 저장해야겠죠?
그 이전의 값을 저장하고 불러오는 방법을 SharedPreferences를 이용하라는 말을 드리는 겁니다.
소중한 댓글 감사합니다. 시도해볼게요~~
...