0

E/UncaughtException: java.lang.NullPointerException: Attempt to invoke interface method 'void mm.com..fragment.BottomSheetFragment$BottomSheetListener.onButtonClicked(java.lang.String)' on a null object reference at mm.com.blueplanet.videoclip.fragment.BottomSheetFragment$1.onClick(BottomSheetFragment.java:40) at android.view.View.performClick(View.java:5647)

This is RecycervieAdapter class

((ItemViewHolder) holder).cmtText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                FragmentTransaction ft = ((DetailActivity) mContext).getSupportFragmentManager()
                        .beginTransaction();
                BottomSheetFragment bottomsheet= new BottomSheetFragment();
                bottomsheet.show( ft, "BottomSheet");
            }
        });

This is bottomsheet

public class BottomSheetFragment extends BottomSheetDialogFragment {
  Context mContext;
  public BottomSheetListener mListener;

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

    mContext = getActivity();
    ImageButton btn = (ImageButton) v.findViewById(R.id.cmt_btn);
    final EditText edt = (EditText) v.findViewById(R.id.edt_cmt);


    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mListener.onButtonClicked("" + edt.getText().toString());

            dismiss();
        }
    });


     return v;
  }

  public interface BottomSheetListener {
    void onButtonClicked(String text);
  }


 @Override
 public void onAttach(Context context) {
    super.onAttach(context);
    try {
        mListener = (BottomSheetListener) mContext;
    } catch (ClassCastException e) {
        throw new ClassCastException(context.toString());
    }
  }
}
kritikaTalwar
  • 1,730
  • 1
  • 17
  • 25
H Zan
  • 359
  • 1
  • 4
  • 16

1 Answers1

0
((ItemViewHolder) holder).cmtText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                FragmentTransaction ft = ((DetailActivity) mContext).getSupportFragmentManager()
                        .beginTransaction();
                BottomSheetFragment bottomsheet= new BottomSheetFragment();
                bottomsheet.show( ft, "BottomSheet");
                bottomsheet.onButtonClicked()

            }
        });

you must Implement onButtonClicked when you created new Object

and You can Edit Your Listener like this

private onItemsClicked mListener = null;

and create Two Interface

public void setOnClickListener(onItemsSelected onClickListener)
    {
        mListener = onClickListener;
    }
    public interface onItemsSelected
    {
        void onclick(float x, float y, String value);
    }

Now You Can use it Like this

view.setOnClickListener(new LineChart.onItemsSelected() {
            @Override
            public void onclick(float x, float y , String value) {}
Elsunhoty
  • 1,609
  • 14
  • 27