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

Navigation Drawer로 설정 페이지를 만들고, 설정값을 다른 클래스에서 유지시키기

0 추천

Navigation drawer를 통해

[설정] 페이지와 [메인] 페이지를 두개 두고

설정 페이지에서 여러 값을 설정한 뒤에 그것을 메인에 유지시키면서 동시에 메인에서 활용하고 싶습니다

 

제가 찾아본 방법은 이렇습니다 :

 

[설정] 액티비티에서 메인 클래스의 인스턴스를 만들고:

Mainactivity mainActivity = new MainActivity();

bundle 에 설정한 데이터값을 넣은다음

해당 mainActivity.setArgument(데이터 번들); 후

manager.beginTransaction().replace(R.id.content_frame,mainActivity).commit();

 

이것을 통해 설정 페이지에서 mainActivity로 넘어가서

bundle이 null이 아니라면 bundle에서 데이터를 빼와 Mainactivity의 view의 editText 따위의 컴포넌트들에 번들의  값을 넣어주고

view = inflater.inflate(R.layout.main_layer,container,false);

그것을 인플래터로 실행시키려고 했는데요

일단 값이 넘어가지는것은 확인했지만, 문제가 있습니다.

1) mainActivity를 새로이 키면 이전에 [설정]페이지를 통해 넘겨줬던 값들이 유지가 안됩니다

설정값을 유지시킬수있는 방법이 있을까요?

2) [설정]페이지 에서 bundle로 넘겨받은 값을 mainActivity의 view에게 전송하는 과정이 안됩니다

가령 bundle로 받은 'number' 데이터를 main의 editText에 넣어주려고 하면 에러가 뜹니다

이것은 inflater의 특성때문인것 같은데... 이것을 구현할 수 잇는 다른 방법이 없을까요? 

 

도와주시면 정말 감사드리겠습니다

코두 (370 포인트) 님이 2019년 3월 19일 질문

1개의 답변

0 추천
 
채택된 답변
https://developer.android.com/reference/android/preference/Preference

안드로이드 프리퍼런스를 이용해보세요.
뱅구다 (11,280 포인트) 님이 2019년 3월 19일 답변
코두님이 2019년 3월 20일 채택됨
프리퍼런스를 써봤는데 문제는 프리퍼런스 페이지에서는 진짜 말그대로 설정만 가능하고 다른 기능을 프리퍼런스에 끌어오기가 힘들더라구요.. 전화번호부를 불러와서 전화번호를 설정한다던지..
설정페이지에서 전화번호부를 불러와서 불러온 전화번호를 프리퍼런스에 저장하세요. 그리고 메인액티비티에서 설정페이지에서 저장한 전화번호의 값을 불러와서 사용하세요~ 프리퍼런스는 오브젝트까지 저장이 가능합니다.
...