接上篇文章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 里面的名称是在代码中点击事件对应的方法名称。
代码中对点击事件的处理,如下图所示:
布局中设置点击事件_代码.png2、 代码中设置
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());
网友评论