채팅 프로그램을 만드는데 대화가 새로 들어올때마다 동적으로 텍스트뷰를 만들어서 계속 밑으로 추가시키려고 합니다.
그래서 잘 구현까지 해놨는데, 문제는 화면전환기능이 있는데, 설정과 채팅으로 두개의 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 {
....
}