监听式跳转
更优雅的处理Popupwindow监听
使用一个例子来解决问题
简略操作
①创建EMPTY ACTIVITY
②将新类继承PopupWindow
③定义布局控件以及定义View视图弹窗参数
④为窗体内控件点击事件作方法重写式监听
⑤于处显示窗体活动下为弹出窗口实现监听类
⑥在活动布局下创建显示窗体区域控件
⑦实例化之前定义的窗体类并通过其参数回馈监听方法
具体代码
定义View视图弹窗参数
实例化LayoutInflater对象并传参
1 2
| LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
为定义弹窗绑定视图布局
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| mMenuView = inflater.inflate(R.layout.布局名, null); ###### 为控件点击事件作监听 btn_dchu.setOnClickListener(itemsOnClick); ###### 为弹出窗口实现监听类 private View.OnClickListener itemsOnClick = new View.OnClickListener() {
public void onClick(View v) { menuWindow.dismiss(); switch (v.getId()) { case ID: Intent intent = new Intent(); intent.setClass(MainActivity.this,EditActivity.class); startActivity(intent); finish(); break; case ID: Intent intent1 = new Intent(); intent1.setClass(MainActivity.this,AboutActivity.class); startActivity(intent1); finish(); break; default: break; } } };
|
为弹窗实例化以达到方法
1
| menuWindow = new SelectPicPopupWindow(MainActivity.this, itemsOnClick);
|
为窗体通过ID显示绑定控件
1
| menuWindow.showAtLocation(MainActivity.this.findViewById(R.id.main), Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0); //设置layout在PopupWindow中显示的位置
|