편집 기록

편집 기록
  • 프로필 알 수 없는 사용자님의 편집
    날짜2016.10.04

    안드로이드 뷰페이저 갱신 질문입니다.


    안녕하세요. 연휴는 잘 보내셨는지요. 다름이 아니라 연휴간 해결하지 못한 문제를 질문드리려고 합니다.

    레이아웃에 탭 3개를 프래그먼트를 이용하여 뷰페이저를 구성하였는데요.

    프래그먼트 탭A 에서 EditText를 이용해 스트링값을 입력 받고 아래 버튼을 누르면

    번들을 이용해 값을 탭을 감싸고 있는 메인클래스에 값을 세팅시키고

    프래그먼트 탭B 에 있는 TextView에 값이 그대로면 계속해서 저장되있고 다시 탭A에서

    다른값을 입력하고 버튼을 눌렀을때 값이 변경되게 하려고 합니다.

    구글링하면서 성공을 시킨 방법이 있는데 탭을 넘길때 전체적인 퍼포먼스가

    너무 느려져서 다른방법을 찾고있습니다.

    현재 소스로는 앱을 종료시켰다가 다시 켰을때 이전에 입력값이 표시는 됩니다.

    다만, 입력 후 탭을 옴겼을때 바로 갱신이 되질 않네요.

    비슷하게 구현된 예제를 아시거나 ,아시는 내용이 있으시면 답변해주시면 감사하겠습니다.

    아래 관련 소스 첨부합니다.

    // 프래그먼트 탭A에서 클릭 이벤트 리스너 내부
    childDate = childBirth.getText().toString();
    Bundle arguments = new Bundle();
    arguments.putString("name", childDate);
    MainTab.setArguments(arguments);
    
    // 메인 클래스 겟터 셋터
    public static void setArguments(Bundle arguments) {
          MainTab.arguments = arguments;
    }
    public static Bundle getArguments() {
          return arguments;
    }
    
    // 프래그먼트 탭B onCreateView
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
         Bundle savedInstanceState) {
    
          View v = inflater.inflate(R.layout.fragment_educationinfo, container, false);
    
          Bundle bundle = MainTab.getArguments();
          if (bundle != null) {
                String name = bundle.getString("name");
    
                TextView txt = (TextView) v.findViewById(R.id.test);
                txt.setText(name);
          }
          return v;
    }