发布于 

监听式跳转

更优雅的处理Popupwindow监听

使用一个例子来解决问题

简略操作

①创建EMPTY ACTIVITY
②将新类继承PopupWindow
③定义布局控件以及定义View视图弹窗参数
④为窗体内控件点击事件作方法重写式监听
⑤于处显示窗体活动下为弹出窗口实现监听类
⑥在活动布局下创建显示窗体区域控件
⑦实例化之前定义的窗体类并通过其参数回馈监听方法

具体代码

定义View视图弹窗参数
1
private View mMenuView
实例化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中显示的位置