android的弹出框有两种 一种是以AlertDialog.Builder()的形式 另外一种是PopupWindow的形式
//相关代码
public class AddClientGoAndBack extends Activity {
/**
* 保存按钮 初始化按钮
*/
@Bind(R.id.btn_addClientBackandGo_save)
Button btn_addClientBackandGo_save;
//保存
private PopupWindow popupWindowSave;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//隐藏标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_add_client_go_and_back);
//注册的ButterKnife 前面已经讲过了
ButterKnife.bind(this);
setupPopupDate();
}
@OnClick({R.id.btn_addClientBackandGo_save})
public void onClick(View v){
switch (v.getId()) {
case R.id.btn_addClientBackandGo_save:
btn_addClientBackandGo_save.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//按下字体消失
btn_addClientBackandGo_save.setText("");
break;
case MotionEvent.ACTION_UP:
//抬起字体出现
btn_addClientBackandGo_save.setText("保存");
break;
}
getPopupWindow();
//显示到屏幕中部
popupWindowSave.showAtLocation(v, Gravity.CENTER, 0, 0);
//显示到某个控价下边
//popupWindowSave.showAsDropDown(btn_addClientBackandGo_save);
return false;
}
});
}
/**
* 保存按钮的弹出框 创建PopupWindow
*/
private void initPopuWindow(){
// 获取自定义布局文件activity_popupwindow_left.xml的视图
View popupWindow_view = getLayoutInflater().inflate(R.layout.cgrk_zjrk_save_popwindow, null);
//初始化布局文件的的按钮
TextView tv_newAdd_cancel = (TextView) popupWindow_view.findViewById(R.id.tv_newAdd_cancel);
TextView tv_newAdd_confirm = (TextView) popupWindow_view.findViewById(R.id.tv_newAdd_confirm);
// 创建PopupWindow实例,200,LayoutParams.MATCH_PARENT分别是宽度和高
popupWindowSave = new PopupWindow(popupWindow_view, 550, LayoutParams.WRAP_CONTENT);
// 使其聚集
popupWindowSave.setFocusable(true);
// 设置允许在外点击消失
popupWindowSave.setOutsideTouchable(true);
// 这个是为了点击“返回Back”也能使其消失,并且并不会影响你的背景
popupWindowSave.setBackgroundDrawable(new BitmapDrawable());
WindowManager windowManager3 =(WindowManager)getSystemService(Context.WINDOW_SERVICE);
//设置按钮的点击监听事件
tv_newAdd_cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//点击取消的情况下弹出框消失
dismiss(popupWindowSave);
}
});
//设置按钮的点击监听事件
tv_newAdd_confirm.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//TODO 还未开发完的功能 保存
//点击保存的情况下弹出框消失
dismiss(popupWindowSave);
}
});
}
/***
* 获取PopupWindow实例
*/
private void getPopupWindow() {
if (null != popupWindowSave) {
popupWindowSave.dismiss();
//清零
popupWindowSave = null;
return;
} else {
initPopuWindow();
}
}
public void dismiss(PopupWindow popupWindows){
if(popupWindows!=null && popupWindows.isShowing()){
popupWindows.dismiss();
}
}
}