왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • yolov8
  • 딥러닝
  • 의료이미징
  • matplotlib
  • labelme
  • 기상탐사
  • 영상처리역사
  • tune()
  • OpenCV
  • TensorFlow
  • PIL
  • encoding='utf-8'
  • UnboundLocalError
  • labelme UnocodeDecodeError
  • 컴퓨터비전
  • pip install labelme
  • get_long_description
  • PYTHON
  • maskimage
  • 비지도학습
  • ckpt_file
  • 영상기술
  • alibidetect
  • imageprocessing
  • alibi-detection
  • ComputerVision
  • unsupervised
  • pytorch
  • 영상처리
  • numpy

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성

코딩발자취

Android Studio

Android - 화면 갱신 함수 notifyDataSetChanged()

2023. 2. 2. 10:59
728x90

알러트 다이얼로그는 액티비티가 아니므로


메인 액티비티의 onResume 함수가 실행이 안된다.


따라서 화면 갱신이 안된다.

 

즉 DB에 저장된 데이터를 삭제 했으니


메모리에 저장된 데이터도 삭제한다.

데이터가 변경되었으니 화면 갱신 함수 호출

= > notifyDataSetChanged()

 

전체 코드

 

 public void onClick(View view) {
                    // 1. 어느 주소록을 삭제할 것인지
                    // 삭제할 주소록을 가져온다.
                    deleteIndex = getAdapterPosition();
                    Contact contact = contactList.get(deleteIndex);

                    // 2. 알러트 다이얼로그를 띄운다
                    AlertDialog.Builder builder = new AlertDialog.Builder(context);
                    builder.setTitle("주소록 삭제");
                    builder.setMessage("정말 삭제하시겠습니까?");
                    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            // 3. 알러트 다이얼로그에서 Yes를 눌렀을 때
                            // 삭제할 주소록을 DB에서 삭제
                            DatabaseHandler db = new DatabaseHandler(context);

                            Contact contact = contactList.get(deleteIndex);

                            db.deleteContact(contact);

                            // 알러트 다이얼로그는 액티비티가 아니므로
                            // 메인 액티비티의 onResume 함수가 실행이 안된다.
                            // 따라서 화면 갱신이 안된다.

                            // 즉 DB에 저장된 데이터를 삭제 했으니
                            // 메모리에 저장된 데이터도 삭제한다.
                            contactList.remove(deleteIndex);
                            // 데이터가 변경되었으니 화면 갱신 함수 호출
                            // => notifyDataSetChanged()
                            notifyDataSetChanged();

                        }
                    });
                    builder.setNegativeButton("No",null);
                    builder.show();



                }
           });

 

 

'Android Studio' 카테고리의 다른 글

Android - Multi Processing, Multi Threading/ 네트워크 통신을 위한 Volley Library  (0) 2023.02.03
Android - 실시간 검색기능 개발 ( TextWathcer )  (0) 2023.02.03
Android - 다른 Activity로 데이터 전달 시 클래스의 객체를 전달하는 방법 Serializable , putExtra(), getSerializableExtra()  (0) 2023.02.01
Android - RecyclerView 어댑터에서 새로운 액티비티 실행하는 방법과 몇 번째 행을 눌렀는지 알 수 있는 getAdapterPosition()  (0) 2023.02.01
Android - RecyclerView - 리스트를 화면에 출력하기  (0) 2023.02.01
    'Android Studio' 카테고리의 다른 글
    • Android - Multi Processing, Multi Threading/ 네트워크 통신을 위한 Volley Library
    • Android - 실시간 검색기능 개발 ( TextWathcer )
    • Android - 다른 Activity로 데이터 전달 시 클래스의 객체를 전달하는 방법 Serializable , putExtra(), getSerializableExtra()
    • Android - RecyclerView 어댑터에서 새로운 액티비티 실행하는 방법과 몇 번째 행을 눌렀는지 알 수 있는 getAdapterPosition()
    왕현성
    왕현성
    AI 머신비전 학습일지

    티스토리툴바