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

RecyclerView 클릭 이벤트를 넣었는데 계속 종료됩니다 ㅠㅠ

0 추천
package org.techtown.dailyscheduler;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;

public class MemoAdapter extends RecyclerView.Adapter<MemoAdapter.ViewHolder> {
    ArrayList<Memo> items = new ArrayList<Memo>();

    public interface OnItemClickListener{
        void onItemClick(View v, int position);
    }

    private OnItemClickListener mListener = null;

    public void setOnItemClickListener(OnItemClickListener listener){
        this.mListener = listener;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext());
        View itemView = inflater.inflate(R.layout.schedule_board, viewGroup, false);

        return new ViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
        Memo item = items.get(position);
        viewHolder.setItem(item);
    }

    @Override
    public int getItemCount() {
        return items.size();
    }

    public void addItem(Memo item){
        items.add(item);
    }

    public class ViewHolder extends RecyclerView.ViewHolder{

        TextView textView;
        TextView textView2;
        TextView textView3;

        public ViewHolder(View itemView){
            super(itemView);
            textView = itemView.findViewById(R.id.textView1);
            textView2 = itemView.findViewById(R.id.textView2);
            textView3 = itemView.findViewById(R.id.textView3);

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    int position = getAdapterPosition();
                    if(position != RecyclerView.NO_POSITION){
                        if(mListener!=null){
                            mListener.onItemClick(view,position);
                        }
                    }
                }
            });
        }

        public void setItem(Memo item){
            textView.setText(item.getSubject());
            textView2.setText(item.getContent());
            textView3.setText(item.getTime());
        }

    }
}
MemoAdapter memoAdapter;
memoAdapter.setOnItemClickListener(new MemoAdapter.OnItemClickListener() {
    @Override
    public void onItemClick(View v, int position) {

    }
});

리사이클러 뷰의 adapter 부분과 밑에는 메인액티비티의 onCreate 내부에 작성한 것 입니다. 인터넷에서 찾은거 그대로 적은거같은데 실행 자체가 안되고 FATAL EXCEPTION이 뜨면서 앱이 종료됩니다 어디서 문제가 있는건지 알려주세요 ㅠㅠ

grabbity (120 포인트) 님이 2022년 6월 20일 질문

1개의 답변

0 추천
Recycleview와 memoAdapter 를 초기화하는 코드가 없네요. 정확한 건 로그캣에 에러메세지가 있을 겁니다. 앱개발을 하시려면 로그보는 법과 디버깅하는 법은 기본으로 배우셔야 해요.
spark (226,420 포인트) 님이 2022년 6월 20일 답변
...