Android 自定义视图内部接口引发异常

Android 自定义视图内部接口引发异常,android,exception,interface,fragment,Android,Exception,Interface,Fragment,我有一个自定义视图,如下所示,带有一个内部界面来处理按钮单击 public class SavedContentCardView extends RelativeLayout { SavedItem[] mItems; TextView mHeader; Button mMoreButton; TextView mEmptyView; LinearLayout mContainer; OnMor

我有一个自定义视图,如下所示,带有一个内部界面来处理按钮单击

  public class SavedContentCardView extends RelativeLayout {

        SavedItem[] mItems;
        TextView mHeader;
        Button mMoreButton;
        TextView mEmptyView;
        LinearLayout mContainer;
        OnMoreButtonClickListener mListener;

        public SavedContentCardView(Context context) {
            super(context);
            initialize(context, null, 0);

        }

        public SavedContentCardView(Context context, AttributeSet set) {
            super(context, set, 0);
            initialize(context, null, 0);
        }

        public SavedContentCardView(Context context, AttributeSet set, int defStyle) {
            super(context, set, defStyle);
            initialize(context, null, 0);
        }

        private void initialize(Context context, AttributeSet set, int deftStyle) {
            inflate(context, R.layout.saved_content_card_layout, this);
            mHeader = (TextView) findViewById(R.id.headerTitle);
            mMoreButton = (Button) findViewById(R.id.moreButton);
            mEmptyView = (TextView) findViewById(R.id.emptyView);
            mContainer = (LinearLayout) findViewById(R.id.main_container);
            mMoreButton.setOnClickListener(v -> {
                if (mListener != null) {
                    mListener.onMoreClicked();
                }
            });
    }

        public void loadItems(List<SavedItem> items) {

            if (items == null || items.size() == 0) {
                mEmptyView.setVisibility(VISIBLE);
                mContainer.setVisibility(GONE);
                mHeader.setVisibility(GONE);
                mMoreButton.setVisibility(GONE);

            } else {
                for (SavedItem item : items) {
                    SavedContentRowView card = new SavedContentRowView(item, mContainer.getContext());

                    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                            ViewGroup.LayoutParams.MATCH_PARENT,
                            ViewGroup.LayoutParams.WRAP_CONTENT);
                    params.setMargins(0, 0, 0, 20);

                    mContainer.addView(card, mContainer.getChildCount(), params);
                }
                mEmptyView.setVisibility(GONE);
                mContainer.setVisibility(VISIBLE);
                mHeader.setVisibility(VISIBLE);
                mMoreButton.setVisibility(VISIBLE);
            }

        }

        public OnMoreButtonClickListener getMoreClickListener() {
            return mListener;
        }

        public void setMoreClickListener(
                OnMoreButtonClickListener listener) {
            mListener = listener;
        }

        public  interface OnMoreButtonClickListener {
            void onMoreClicked();
        }

    }

请问,你在哪里初始化了你的听众? 你真的初始化了吗?mListener的价值是什么

          mMoreButton.setOnClickListener(v -> {
            if (mListener != null) {
                mListener.onMoreClicked();
            }
        });

你能仔细检查一下你的活动包吗?您在清单中声明了吗?是的,我有一个正在运行的应用程序。当我在活动中实现内部片段时,我会遇到一个异常。您发布的代码与您面临的问题无关。任何地方都没有对
MainActivity
的引用。另外,您应该熟悉[Java编码约定][1],尤其是包、类和方法,然后更新代码以匹配,否则查看代码会有点痛苦。onmorebutonClickListener没有初始化我想好了,谢谢。这个V是从哪里来的?你能把这个->零件展开吗?
   java.lang.NoClassDefFoundError: com.fragments.HomeFragment
          mMoreButton.setOnClickListener(v -> {
            if (mListener != null) {
                mListener.onMoreClicked();
            }
        });