点击自定义控件选项卡以更改功能:setXXXListener()被理解和错误

时间:2019-07-06 08:56:00

标签: java android listener onclicklistener

Android:无法编写我的自定义控件侦听器和回调以使用“点击以更改片段”。

在旧版本中,我成功实现了此功能,但是后来我尝试将PublicHeader文件从Activity转换为Fragment文件,存在一些错误,这是另一个问题。

现在,我已将PublicHeader文件重写为Activity文件:

如何理解自定义控件的“回调”和“实现接口”?

我已经尝试在下面的此链接中写回调函数(所有中文,请翻译):

  1. 我的学习笔记:复合控件

  2. Android自定义控件之自定义组合控件

  3. Android自定义复合控件

尝试链接2:

声明:


 private MainNavigationViewItem.OnClickListener mOnClickListener;

 private MainNavigationItemClickListener mMainNavigationItemClickListener;

MainNavigationItem.java: 关于回调:

public void setMainNavigationItemClickListener(OnClickListener onClickListener) {
        if (onClickListener != null) {
            mImageView.setOnClickListener(onClickListener);
            mTextView.setOnClickListener(onClickListener);
        }

    }

    public ImageView getmImageView() {
        return mImageView;
    }

    public TextView getmTextView() {
        return mTextView;
    }

MainActivity.java:

 private void initListener(View.OnClickListener onClickListener) { 

        mOnClickListener.setMainNavigationItemClickListener(new View.OnClickListener onClickListener) { //wrong:")"or"[",")"or";"expected

            @Override
            public void onClick(View view) { //wrong:Cannot resolve symbol"view" ...
                switch (mMainNavigationView.getId()){ 

尝试链接3:

MainNavigationItem.java:

关于回调代码:

...
 MainNavigationItemClickListener mMainNavigationItemClickListener = null;

    public void setMainNavigationItemClickListener(MainNavigationItemClickListener mMainNavigationItemClickListener) {
       this.mMainNavigationItemClickListener = mMainNavigationItemClickListener;

    }

MainActivity.java:

  private void initListener(View.OnClickListener onClickListener) {
         mOnClickListener.setMainNavigationItemClickListener(MainNavigationItemClickListener mMainNavigationItemClickListener) {

         @Override
        public void onClick(View.OnClickListener onClickListener) { //wrong:")"";"expected
            switch (mMainNavigationView.getId()) {
...

我在上面尝试过,所有错误都在“ m .... set .......(View.OnClickListener / new OnClickListener ...)”中,并且模拟器点击自定义控件选项卡无法更改片段。

0 个答案:

没有答案