구조가
-
메뉴 선택 화면 (오더리스트와 총 금액 표시)
-
오더리스트에서 변경하고자 하는 단일 아이템의 수정 버튼을 누르면 '가격 수정 팝업' 보여짐.
이렇게 되어있고, 원하시는 기능은
-
피자(5000), 콜라(500)을 선택하여 오더리스트에 2개의 메뉴가 추가됨.
-
피자 아이템의 수정 버튼을 누르면 '가격 수정 팝업' 호출.
-
가격을 3000원으로 수정하고 확인 버튼으로 팝업을 종료.
-
재 설정된 가격을 반환받아 총 가격을 3000+500 = 3500으로 변경.
인건가요?
맞다면... 오더를 관리하는 객체는 메뉴 화면에 존재할테고, 오더가 추가될때 마다 고유 UID가 부여되며,
다이얼로그 또는 액티비티 이동 시에 해당 UID를 가지고 호출되어 값을 반환 받을 떄 다시 UID를 반환 받아
오더관리 객체에 해당 UID의 오더를 업데이트하면 될 것같은데요...
정리하면
-
오더화면의 오더관리자는 주문 발생시 UID를 생성하여 주문을 적재.
-
주문 가격 수정이 발생하면 수정 화면으로 이동.
-
이동시에 UID와 제품 이름, 가격 등등 필요 정보를 같이 전달.
-
또는 오더관리자는 singletone으로 구현하여 UID만 전달하고, 수정 화면에서 싱글객체를 얻어 오더를 조회.
-
가격 수정이 완료되면 오더화면으로 가격 수정의 데이터를 전달. (여러가지 방법)
-
Activity이동이었다면 onActivityResult.
-
DialogFragment 였다면 이벤트 인터페이스를 구현한 객체를 UID전달시에 같이 전달하고 DialogInterface.OnClickListener의 DialogInterface.BUTTON_POSITIVE 등을 이용하여 수정이 호출될때 이전에 전달받은 인터페이스 구현객체의 메서드를 호출해서 값 전달.
-
오더관리자가 singletone이라면 수정화면에서 수정될때 해당 싱글객체에 바로 업데이트하고 오더화면으로 돌아갈 때 오더관리자로부터 최신데이터를 다시 얻어 오더 화면을 업데이트.
이렇게 되면 될 듯 싶은데요... 사실 질문을 완벽히 이해하지 못했어요...