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

동적으로 만든 뷰가 액티비티 전환 시 싹 지워지는 문제

0 추천

채팅 프로그램을 만드는데 대화가 새로 들어올때마다 동적으로 텍스트뷰를 만들어서 계속 밑으로 추가시키려고 합니다.

그래서 잘 구현까지 해놨는데, 문제는 화면전환기능이 있는데, 설정과 채팅으로 두개의 fragment

설정 창으로 전환했다가 다시 채팅창으로 되돌아오면 채팅해왔던 뷰들이 모두 사라져있고 처음화면이 되버립니다.

안드로이드 특성상 메모리순환을 위해 화면에서 가려진 액티비티를 싹 지워버리고 새롭게 onCreate 콜백하고

inflate(R.layout.main)하는거 같은데...

동적으로 생성해놨던 뷰들을 액티비티가 화면에서 잠시 나가도 유지되게 하는 방법 없을까요?

아무래도 그 많은 채팅들을 모두 배열에다 저장해놓고 화면전환때마다 for로 계속 동적생성하면 비용이 많이들꺼같아서요.

배열로 범위를 정해버리면 그 이상의 채팅도 문제가 될거같아서

뭔가 방법이 있을거같아 궁금해서 질문드립니다.

 

간략한 코드는 아래와 같습니다.

public class MainActivity extends FragmentActivity implements
		ActionBar.TabListener {

...

public static class SectionFragment1 extends Fragment implements OnClickListener {
	
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
		Bundle savedInstanceState) {

       View rootView = inflater.inflate(R.layout.fragment1, container, false);
                   ...
		return rootView;
		}
	    public void onClick(View v) {
		newmsg = new TextView(context);
		layout.addView(newmsg, msg.getLayoutParams()); }
}
public static class SectionFragment2 extends Fragment implements OnClickListener {

....
}

 

ifreeta (260 포인트) 님이 2013년 10월 31일 질문
ifreeta님이 2013년 10월 31일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...