给dialog设置margin

本文介绍了一个用于编辑联系人信息的Android应用片段,该片段通过弹窗对话框让用户修改电话、微信和QQ等联系方式,并提供了取消和保存选项。保存时会进行格式验证并更新联系人视图。
	/**
	 * 编辑联系人信息
	 */
	private void editContact() {
		editContactView = View.inflate(this, R.layout.activity_editcontacet, null);
		final Dialog contactdialog = new Dialog(this, R.style.contactdialog);
		contactdialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
		contactdialog.setContentView(editContactView);

		Window contactWindow = contactdialog.getWindow();
		WindowManager m = getWindowManager();
		Display defaultDisplay = m.getDefaultDisplay();

		// 设置屏幕的90%宽度
		WindowManager.LayoutParams lp = contactWindow.getAttributes();
		lp.width = (int) (defaultDisplay.getWidth() * 0.80);
		contactWindow.setAttributes(lp);

		contactWindow.setGravity(Gravity.TOP);
		configWindow(contactWindow, lp);
		
		
//		contactWindow.setGravity(Gravity.CENTER_HORIZONTAL);
		etPhone = (EditText) contactdialog.findViewById(R.id.et_phone);
		contactdialog.show();
		etWeixin = (EditText) contactdialog.findViewById(R.id.et_wx);
		etQQ = (EditText) contactdialog.findViewById(R.id.et_qq);
		TextView tvcontactCancle = (TextView) contactdialog.findViewById(R.id.tv_editcontactcancle);
		TextView tvcontactSave = (TextView) contactdialog.findViewById(R.id.tv_editcontactsave);
		LoginResponse preUser = TpDataCache.getDataCache().getUser();
		TpleEmployee preEmployee = preUser.getEmployee();
		String code = preEmployee.getQqCode();
		String wechat = preEmployee.getWechat();
		String mobile = preEmployee.getMobile();
		etPhone.setText(mobile);
		etWeixin.setText(wechat);
		etQQ.setText(code);
		/**
		 * 取消按钮
		 */
		tvcontactCancle.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				contactdialog.dismiss();
				editContactView.clearAnimation();
				imm.hideSoftInputFromWindow(etPhone.getWindowToken(), 0);
				 imm.hideSoftInputFromWindow(etQQ.getWindowToken(), 0);
				 imm.hideSoftInputFromWindow(etWeixin.getWindowToken(), 0);
			}
		});

		/**
		 * 保存按钮把数据 传到 联系人textView上
		 */
		tvcontactSave.setOnClickListener(new OnClickListener() {

			

			@Override
			public void onClick(View v) {
				phoneText = etPhone.getText().toString();
				weixinText = etWeixin.getText().toString();
				qqText = etQQ.getText().toString();
				
//				if (phoneText.isEmpty() && qqText.isEmpty() && weixinText.isEmpty()) {
//					ToastShow("请填至少一种联系方式。");
//					return;
//				}
				if (!TextUtils.isEmpty(phoneText)&&!CheckNumber.checkPhone(phoneText)) {
					ToastShow("输入的电话号码有误!");
					return;
				}
				if (!TextUtils.isEmpty(qqText)&&!CheckNumber.checkQQ(qqText)) {
					ToastShow("输入的QQ有误!");
					return;
				}
				if (!TextUtils.isEmpty(weixinText)&&!CheckNumber.checkStr(weixinText)) {
					ToastShow("输入的微信有误!");
					return;
				}
				
				
				
				for (int i = 4; i < ids.length; i++) {

					View interView = findViewById(ids[i]);
					TextView right = (TextView) interView.findViewById(R.id.tv_right);
					switch (i) {
					case 4:

						right.setText(phoneText);

						break;
					case 5:

						right.setText(weixinText);
						break;
					case 6:

						right.setText(qqText);
						break;

					default:
						break;
					}

				}
				ModifyContactInfoRequest request = new ModifyContactInfoRequest();
				if (!TextUtils.isEmpty(phoneText)) {
					request.setMobile(phoneText);
				}
				if (!TextUtils.isEmpty(qqText)) {
					request.setQqCode(qqText);
				}
				if (!TextUtils.isEmpty(weixinText)) {
					request.setWechat(weixinText);
				}
				// TODO 获取用户token
				if (user != null) {
					request.setToken(user.getToken());
				}
				// request.setShowResult(showResult);
				TplRequest tplRequest = new TplRequest(TpPersonnalCenterActivity.this, true,
						TpPersonnalCenterActivity.this, RemoteService.shopService, RemoteService.MODIFY_CONTACT_INFO,
						request);
				tplRequest.execute();
				
				contactdialog.dismiss();
				editContactView.clearAnimation();
//				hiddenKeyboard();
//				if (imm.isActive()) {
//					InputMethodManager imm = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
//					// 显示或者隐藏输入法
//					imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 
//				}
				hiddenKeyboard();
			}
		});

	}


    private void configWindow(Window win, WindowManager.LayoutParams wAttrs) {  
        wAttrs.gravity = Gravity.BOTTOM;  
        wAttrs.horizontalMargin =0F;  
        // 因为现在的gravity是Gravity.LEFT和Gravity.CENTER,所以在垂直方向上是以中间为margin的参考点  
        wAttrs.verticalMargin = 0.59F;  
    }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值