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

안드로이드 리스트뷰로 저장된 리스트 활용하는 법이 뭘까요?

0 추천

예시로 2번테이블 A메뉴, 3번 테이블 A메뉴 ,4번테이블 B메뉴로 3개이면 A메뉴가 인기메뉴라는 이벤트 처리를 만들고 싶은데요. 혹시 listview를 배열처리해서 1번 리스트항목, 2번 리스트항목, 3번 리스트 항목으로 해서 아래 파란색 버튼을 누르면 인기메뉴 통계처리 가능할까요?? 방법이 있는지 궁금합니다...

코드는 Parcelable로 객체생성하고, intent로 넘겨서 리스트 내용을 2번 테이블 상세페이지 들어가기로 표현하긴 했습니다....

초보안드로이다 (120 포인트) 님이 2020년 9월 29일 질문

1개의 답변

0 추천
아마 로컬 데이터베이스가 있으실 것 같은데, 상세 페이지에서 데이터를 Intent 대신에 로컬 데이터베이스에서 로딩하세요. 이게 테스트 짜기도 그렇고 여러모로 더 좋은 구조라고 보여요. 앱에서 참조해야할 데이터를 source of truth라고 부르는데, 이건 한군데에 존재해야 하고, 화면에 있는 리스트뷰가 아니고 데이터베이스나 파일 혹은 메모리에 있어야 합니다. 주문데이터를 참고하실 때는 이 source of truth에서 가져오시는게 맞구요. 주문테이블에서 주문을 데이터베이스에 저장하시고, 테이블 상세 페이지에서는 데이터베이스에 저장된 데이터를 가져와서 사용하세요. 메모리나 파일을 사용하시더라고 마찬가지 구조가 됩니다.

interface DataSource {
    fun getOrderList()
    fun getOrderByTable(tableId: String)
}

class LocalDataSource: DataSource {
    override fun getOrderList() {
            //read from database, file or memory
    }
    override fun getOrderByTable(tableId: String) {
            //read from database, file or memory
    }
}

이 LocalDataSource를 애플리케이션 Singleton을 만드신 다음에 필요한 곳에서 사용하시면 데이터 공유가 수월해집니다.
spark (227,470 포인트) 님이 2020년 10월 3일 답변
...