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

프래그먼트 안에 리싸이클러뷰 이벤트 처리시 엑티비티 전환

0 추천

프래그먼트 안에 리싸이클러뷰를 삽입하고 리싸이클러뷰를 누르면 새로운 엑티비티로 가는 프로그램을 만드는데 어떻게 해야할지 모르겠습니다. 프래그먼트 안에 리싸이클러뷰를 만드는것 까지는 했는데 클릭했을때 엑티비티로 이동하는것이 안됩니다.  리싸이클러뷰 아이템 안에 텍스트뷰contentsTextview 값을 빼서 새로운 엑티비티로 보낼려고하는데

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.TextView.getText()' on a null object reference

이런 오류가 뜨네요 ㅠ 도와주세요ㅠ

public class Fragment1 extends Fragment {
public static final int REQUEST_CODE_MENU = 101;
    RecyclerView recyclerView;
    NoteAdapter adapter;
    TextView contentsTextView;

    Context context;
    OnTabItemSelectedListener listener;



    @Override
    public void onAttach(@NonNull Context context) {
        super.onAttach(context);

        this.context = context;

        if (context instanceof OnTabItemSelectedListener) {
            listener = (OnTabItemSelectedListener) context;
        }
    }

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

        if (context != null) {
            context = null;
            listener = null;
        }
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
        ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment1, container, false);

        contentsTextView = rootView.findViewById(R.id.contentsTextView);

        initUi(rootView);

        loadNoteListData();

        return rootView;
    }

    private void initUi(ViewGroup rootView) {
        recyclerView = rootView.findViewById(R.id.recyclerView);

        LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
        recyclerView.setLayoutManager(layoutManager);

        adapter = new NoteAdapter();

        recyclerView.setAdapter(adapter);

        adapter.setOnItemClickListener(new OnNoteItemClickListener() {
            @Override
            public void onItemClick(NoteAdapter.ViewHolder holder, View view, int position) {
                showEditActivity();
            }
        });
    }

    public void showEditActivity(){
        Intent intent = new Intent(getContext(), EditActivity.class);
        String text = contentsTextView.getText().toString();
        intent.putExtra("text", text);
        startActivityForResult(intent, REQUEST_CODE_MENU);

    }

sw536880 (150 포인트) 님이 2020년 9월 25일 질문

1개의 답변

+1 추천
String text = contentsTextView.getText().toString();

에서

contents 값이 null 이라고 하네요.

contentsTextView = rootView.findViewById(R.id.contentsTextView);

구문에서 해당 id를 잘 찾는지 확인이 필요해 보입니다.
디자이너정 (42,810 포인트) 님이 2020년 9월 27일 답변
...