Android之AlertDialog Demo(20190115)

android.support.v7.app.AlertDialog 的使用

源码下载:https://github.com/watayouxiang/AlertDialogDemo

简单的AlertDialog

public void showSimpleDialog(View view) {    AlertDialog.Builder builder = new AlertDialog.Builder(this);    builder.setIcon(R.mipmap.ic_launcher);    builder.setTitle("Title");    builder.setMessage("Message");    builder.setNegativeButton("取消", null);    builder.setPositiveButton("确定", null);    builder.setNeutralButton("中性", null);    builder.show();}

setView

public void setView(View view) {    AlertDialog.Builder builder = new AlertDialog.Builder(this);    builder.setTitle("Title");    builder.setMessage("Message");    builder.setView(new EditText(this));    builder.setNegativeButton("取消", null);    builder.setPositiveButton("确定", null);    builder.show();}

setSingleChoiceItems

public void setSingleChoiceItems(View view) {    final AlertDialog.Builder builder = new AlertDialog.Builder(this);    builder.setTitle("单选列表");    builder.setSingleChoiceItems(            new String[]{"11111", "22222", "33333", "44444", "55555"},            0,            new DialogInterface.OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                }            }    );    builder.setNegativeButton("取消", null);    builder.setPositiveButton("确定", null);    builder.show();}

setMultiChoiceItems

public void setMultiChoiceItems(View view) {    AlertDialog.Builder builder = new AlertDialog.Builder(this);    builder.setTitle("多选列表");    builder.setMultiChoiceItems(            new String[]{"11111", "22222", "33333", "44444", "55555"},            new boolean[]{false, true, true, false, false},            new DialogInterface.OnMultiChoiceClickListener() {                @Override                public void onClick(DialogInterface dialog, int which, boolean isChecked) {                    Toast.makeText(mContext, "which " + which + ", isChecked " + isChecked, Toast.LENGTH_SHORT).show();                }            }    );    builder.setNegativeButton("取消", null);    builder.setPositiveButton("确定", null);    builder.show();}

setItems

public void setItems(View view) {    AlertDialog.Builder builder = new AlertDialog.Builder(this);    builder.setTitle("Title");    builder.setItems(            new String[]{"11111", "22222", "33333", "44444", "55555"},            new DialogInterface.OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                    Toast.makeText(mContext, "which " + which, Toast.LENGTH_SHORT).show();                }            }    );    builder.setNegativeButton("取消", null);    builder.setPositiveButton("确定", null);    builder.show();}

自定义Dialog

public void showMyDialog(View view) {  AlertDialog.Builder builder = new AlertDialog.Builder(this);    final AlertDialog alertDialog = builder.create();    //取消外部点击隐藏    alertDialog.setCanceledOnTouchOutside(false);    //设置取消监听    alertDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {        @Override        public void onCancel(DialogInterface dialog) {            Toast.makeText(mContext, "onCancel", Toast.LENGTH_SHORT).show();        }    });    //设置自定义布局    View rootView = getLayoutInflater().inflate(R.layout.view_my_dialog, null);    rootView.findViewById(R.id.tv_cancel).setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            alertDialog.cancel();        }    });    alertDialog.setView(rootView);    alertDialog.show();    //设置弹窗参数(注意:弹窗样式修改必须在 dialog.show() 方法后调用,否则不生效)    Window window = alertDialog.getWindow();    if (window != null) {        window.setGravity(Gravity.CENTER);        window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);        //dialog即使没有设置四周的margin也有margin,可以设置给dialog设置个background来解决        window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));        //宽度为屏幕宽度的80%        WindowManager.LayoutParams params = window.getAttributes();        params.width = (int) (getWindowManager().getDefaultDisplay().getWidth() * 0.8f);        window.setAttributes(params);    }}

view_my_dialog.xml

                                                              

更多相关文章

  1. android 设置静态wifi地址
  2. Android模仿Buttonbar
  3. Android(安卓)目录操作
  4. 2013.12.04 (3)——— android SlidingMenu之PropertiesActivity
  5. Android(安卓)Permission
  6. Android中获取和设置手机的壁纸
  7. Android全屏显示
  8. android断点续传实现方案之三
  9. android:程序中安装APK方法

随机推荐

  1. Android:图片不加载到内存获取图片的大小
  2. 程序代码删除联系人的分组
  3. Android(安卓)studio:Emulator: PANIC: Ca
  4. PC 与 Android(安卓)的adb同步通信(一)
  5. Android基类BaseActivity简单封装
  6. HwServiceManager篇-Android10.0 HwBinde
  7. Android(安卓)关于webview内容变化,不resi
  8. android JNI 使用 for mac
  9. Android实现微信自动抢红包的程序
  10. Android(安卓)SDK Manager Proxy on MAC