PopWindow的基本使用

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();
}
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值