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

리사이클러뷰 클릭이벤트 저장

0 추천
https://www.masterqna.com/android/102954/%EB%A6%AC%EC%82%AC%EC%9D%B4%ED%81%B4%EB%9F%AC%EB%B7%B0-list-add-%EC%A7%88%EB%AC%B8

여기서 추가 질문드립니다.

링크까지 연결했는데 버튼에 getDrawableId로 한것을 클릭시 체크 언체크 여부를 추가된 각 item에 대해서 어떤 변수에 저장하려고하는데

구현방법을 모르겠습니다!
enerigpy (2,110 포인트) 님이 2023년 3월 14일 질문

1개의 답변

0 추천

리사이클러뷰를 다루기시기 전에 아래 문제를 먼저 풀어 보세요.

public class ItemData {
     private int image;  
     private boolean checked1;
     private boolean checked2;
     private String link;

     public ItemData(int image, String link) {
         this.image = image;
         this.link = link;
     }

     // gettters

}

위의 POJO 클래스를  관리하는 인터페이스를 구현해 보세요.

public interface ItemDataRepository {
   
      public List<ItemData> getList();

      public ItemData getById(String id);

      public void update(ItemData item);

      public void deleteById(String id);
}

public class ItemDataRepositoryImpl implements ItemDataRepository {

  // 메소드들 오버라이드
}

 

위의 기능을 쉽게 구현하실 수 있다면, 그 다음에 리사이클러뷰로 넘어가세요. 어댑터는 단순히 위의 ItemDataRepository 에서 데이터를 가져와서 사용하면 됩니다.

// Activity

private ItemDataRepository itemDataRepository;


@Override
public void onCreate(...) {
     super.onCreate(...);

     ...

     itemDataRepository = new ItemDataRepositoryImpl();

}

 

spark (225,780 포인트) 님이 2023년 3월 14일 답변
spark님이 2023년 3월 14일 수정
ItemRepository.java 파일에 ItemDataRepository 인터페이스 정의하시고 ItemDataRepositoryImpl.java 파일에 ItemDataRepositoryImpl 클래스를 만들어서 ItemDataRepository를 구현하세요. ItemDataRepository의 메소들을 오버라이드 하시면 됩니다. 자바공부를 최소한의 기초라도 하시면 좋을 것 같아요.
근데 pojo로 구현하는 방법말고
holder.itemView.setOnClickListener 에서
getAdapterPosition으로 db에 넣는 방법이 있을수 있다고 하는데 맞을까요?
제가 POJO를 말씀드린건 해당 기능을 구현할 때 로직이 어떻게 흘러가야하는지 감을 잡으시라고 했던 거구요. 제가 말씀드린 부분을 풀기 힘드시면 말씀하신 방법으로 되긴 합니다만, 마찬가지로 어려움이 있으실겁니다.
gpt한테 도움얻으려하는데 키워드 힌트 얻을수 있을까요?
ChatGPT에 한글로 질문을 하셔도 잘 알아듣습니다.여기서 하셨던 질문을 그대로 해보세요.
...