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

fragment(button) -> customdialog -> recyclerview -> adapter 에서 listener로 fragement에 값전달 오류

0 추천

어댑터에서 리스너를 만들려고하는데 null오류인거같아서  customDialogListener_map을 찍어보니 null값이 뜹니다 다른예제들을 따라해봐도 해결을 못하고있는데 놓친점이있을까요? 

 

 

adapter에서

 

public class PostAdapter_map extends RecyclerView.Adapter<PostAdapter_map.PostViewHolder> {
private CustomDialogListener_map customDialogListener_map ;
public interface CustomDialogListener_map {
    void itemViewclick(String i);
}
public PostAdapter_map(Context context,CustomDialogListener_map customDialogListener_map){
        this.context = context;
        this.customDialogListener_map = customDialogListener_map; }
 
    class PostViewHolder extends RecyclerView.ViewHolder{
        public PostViewHolder(@NonNull View itemView) {
            super(itemView);
 
            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
 
                String ee = "hi";
                customDialogListener_map.itemViewclick(ee);
 
}
}
}

fragment에서

PostAdapter_map postAdapter_map = new PostAdapter_map(getContext(), new PostAdapter_map.CustomDialogListener_map() {
            @Override
            public void itemViewclick(String i) {
                System.out.println(i);
            }
        });

오류

java.lang.NullPointerException: Attempt to invoke interface method 'void com.example.delivery.adapters.PostAdapter_map$CustomDialogListener_map.itemViewclick(java.lang.String)' on a null object reference

 

maestro214 (140 포인트) 님이 2022년 1월 12일 질문
해당 코드만 봐서는 에러는 없어 보이는데요. 다른 곳에서 부터 발생하는 에러로 보여요.

참고로
PostAdapter_map -> PostAdapter
CustomDialogListener_map -> CustomDialogListener
위처럼 사용하는 것이 자바의 올바른 Naming convention(명명규칙)입니다.
아 클래스이름은 같은클래스가 이미 존재해서 그랬습니다

거의 일주일째 한곳에 막혀있는데 답답하네요

다시 하나하나 뜯어보기도하고  예제도 많이 따라하고했는데..

제 실력으로 봤을땐 틀린곳이 없어보이는데 틀렸다고하니..
혹시 깃으로 봐주실수있을까요  염치없이 부탁드려봅니다..
https://github.com/maestro214/Delivery.git
지도 프래그먼트의 커스텀다이올로그 버튼입니다..
시간 날 때 확인해 보고 원인을 찾으면 알려드릴게요.
감사합니다 큰힘이됩니다ㅠ
권한 추가하시면 알려주세요. 수정한 거 PR 만들게요. 조금만 고칠려고 했는데, 생각보다 많이 고쳤네요.
PR을 만들었습니다. 확인해 보시죠.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...