Dialog对话框,超简单自定义用法

1,效果图

Dialog对话框,超简单自定义用法_第1张图片

2,xml 文件



    
    
    
    
        
        
        
    


3,代码

private void showDialog() {
        // 点击弹框修改昵称
        final AlertDialog.Builder builder=new AlertDialog.Builder(EditUserActivity.this);
        // 取消抬头信息
        final View dialogView = mInflater.inflate(R.layout.setting_dialog, null);
        builder.setView(dialogView);
        final AlertDialog dialog = builder.show();
        dialogView.findViewById(R.id.tv_dialog_yes).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditText et_dialog_input = (EditText) dialogView.findViewById(R.id.et_dialog_input);
                String nickName = et_dialog_input.getText().toString().trim();
                if(TextUtils.isEmpty(nickName)){
                    ToastUtils.show("请输入昵称");
                    return;
                }
                ToastUtils.show("昵称修改成功");
                mSu_setting_user_name.showName(nickName);
                //  修改本地sp中的数据
                SharedPreferencesUtils.saveString(EditUserActivity.this,Contants.SP_LOGIN_NAME,nickName);
                //  修改数据库中的数据
                mUser.setUsername(nickName);
                mUserDao.insertOrReplace(mUser);
                dialog.dismiss();

            }
        });
        dialogView.findViewById(R.id.tv_dialog_no).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });


    }


如果需要自定义Dialog 的尺寸和位置:

//  点击弹出一个对话框   对话框里设置日历格式的选择器  这里用 NumberPickerView
        AlertDialog dialog=new AlertDialog.Builder(AddTesterActivity.this).create();
        View heightView = mInflater.inflate(R.layout.layout_height, null);
        dialog.setView(heightView,0,0,0,0);
        dialog.show();//一定要先show出来再设置dialog的参数,不然就不会改变dialog的大小了

        int width = getWindowManager().getDefaultDisplay().getWidth();//得到当前显示设备的宽度,单位是像素
        WindowManager.LayoutParams params = dialog.getWindow().getAttributes();//得到这个dialog界面的参数对象
        params.width = width/3;//设置dialog的界面宽度
        params.height =  WindowManager.LayoutParams.WRAP_CONTENT;//设置dialog高度为包裹内容
        params.gravity = Gravity.CENTER;//设置dialog的重心

        dialog.getWindow().setAttributes(params);//最后把这个参数对象设置进去,即与dialog绑定

        //  获取dialog里面的View的属性
        NumberPicker picker_height = (NumberPicker) heightView.findViewById(R.id.picker_height);
        picker_height.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
            @Override
            public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
                mTvTesterHeightSelector.setText(newVal+" cm");
            }
        });


你可能感兴趣的:(安卓)