美文网首页
View设置点击事件的整理

View设置点击事件的整理

作者: YbSTGing | 来源:发表于2017-09-20 10:48 被阅读18次

    接上篇文章Popupwindow的使用记录

    在使用这个库的一个收获(其实是我忘记怎么设置了)。
    直接上代码:

    View.OnClickListener listener = new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (mPopWindow != null) {
                        mPopWindow.dissmiss();
                    }
                    String showContent = "";
                    switch (v.getId()) {
                        case R.id.tv_pop_01:
                            showContent = "点击 1";
                            break;
                        case R.id.tv_pop_02:
                            showContent = "点击 2";
                            break;
                        case R.id.tv_pop_03:
                            showContent = "点击 3";
                            break;
                        case R.id.tv_pop_04:
                            showContent = "点击 4";
                            break;
                        case R.id.iv_popw_exit:
                            showContent = "";
                            break;
                    }
                    if (!TextUtils.isEmpty(showContent))
                        ToastUtils.showShort(getActivity(), showContent);
                }
            };
            contentView.findViewById(R.id.tv_pop_01).setOnClickListener(listener);
            contentView.findViewById(R.id.tv_pop_02).setOnClickListener(listener);
            contentView.findViewById(R.id.tv_pop_03).setOnClickListener(listener);
            contentView.findViewById(R.id.tv_pop_04).setOnClickListener(listener);
            contentView.findViewById(R.id.iv_popw_exit).setOnClickListener(listener);
    
    

    当时脑子转不过弯来,正在想Popupwindow里面的子View的点击事件该怎么设置,看了下作者的源代码,如上面所示。
    现在一看,这不就是以前学习的View的点击事件的设置么,应该是有5种方式来设置View的点击事件,现在已经忘的差不多了,每天就知道用 ButterKnife .......

    整理一下思路, 记录View的点击事件,顺便回顾一下知识。

    View 点击事件的设置方法:

    1、 直接在布局文件中设置,如下图所示:

    布局中设置点击事件.png

    其中 onClick 里面的名称是在代码中点击事件对应的方法名称。

    代码中对点击事件的处理,如下图所示:

    布局中设置点击事件_代码.png

    2、 代码中设置

    2.1 让Activity或者Fragment 实现点击事件方法

    例如: public class MainActivity extends AppCompatActivity implements View.OnClickListener
    然后在 实现的方法中通过View 的 id 来设置相应的点击事件的处理。

    2.2 直接使用匿名内部类,直接点击处理事件
            TextView tv = (TextView) contentView.findViewById(R.id.tv_pop_01);
            tv.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //do something
                }
            });
    
    2.3 建立一个类,实现 implements View.OnClickListener ,View设置监听器为新建的这个类,这个类中处理点击事件

    建立类:

    public class testListener implements View.OnClickListener{
    
            @Override
            public void onClick(View v) {
                
            }
        }
    

    View设置点击事件

    TextView tv = (TextView) contentView.findViewById(R.id.tv_pop_01);
    tv.setOnClickListener(new testListener());
    
    2.4 使用ButterKnife、Rxbinding、databinding 这种方式,设置对应点击事件。(是叫做依赖注入??)

    相关文章

      网友评论

          本文标题:View设置点击事件的整理

          本文链接:https://www.haomeiwen.com/subject/izbnsxtx.html