android alertdialog.builder监听,GitHub - watayouxiang/AlertDialogDemo: android.support.v7.app.AlertDia...

AlertDialogDemo

Android android.support.v7.app.AlertDialog Demo

/**

* 最简单的 AlertDialog

*

* @param view

*/

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

}

/**

* AlertDialog 添加额外 View

*

* @param view

*/

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

}

/**

* 单选列表 AlertDialog

*

* @param view

*/

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

}

/**

* 多选列表 AlertDialog

*

* @param view

*/

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

}

/**

* 多条目 AlertDialog

*

* @param view

*/

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

}

/**

* 完全自定义 AlertDialog

*

* @param view

*/

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

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android开发中 我们经常会需要在Android界面上弹出一些对话框 比如询问用户或者让用户选择 关于Android Dialog的使用方法 已经有很多blog做出了详细的介绍(比如博客:7种形式的Android Dialog使用举例) 但是只是给出了创建各种类型对话框的方法 并为给出创建对话框之后 并为给出如何用户获取在对话框中做出选择后的数据 即如何监听用户做出的选择 接下来笔者将根据JavaDoc API文档引导读者详细的了解提示对话框 文本框对话框 简单列表对话框 单选项列表对话框 多选项列表对话框 自定义对话框6种类型对话框监听事件的具体处理过程 1 创建提示对话框 笔者为该对话框添加了3个按钮 分别是 PositiveButton (确定) NeutralButton NegativeButton(取消) 中文意思是积极的按钮(确定) 中立的按钮 消极的按钮(取消) 按字面意思翻译 有点怪 但是很形象 创建提示对话框并实现监听事件的代码如下: 2 创建文本框对话框 笔者为该对话框添加了1个文本 一个PositiveButton (确定) 一个NegativeButton(取消) 并实现了PositiveButton点击监听事件 点击后后去文本框里的内容 并以toast形式显示出来 创建文本框对话框并实现监听事件的代码如下: 3 创建简单列表对话框 笔者为该对话框添加了一个数组显示列表 并实现了点击列表item选项监听事件 点击item选项后获取item内容 并以toast形式显示出来 查阅JavaDoc API文档 读者可根据JavaDoc API文档来了解如何实现单击item选项监听事件 如下列出的setItems 方法第2个参数易知只要为第2个参数提供OnClickListener实例即可实现监听事件 读者可通过这种方式触类旁通以下几种对话框监听事件的实现 学会通过查阅JavaDoc API文档来解决问题是一项开发必备的编程能力 创建简单列表对话框并实现监听事件的代码如下: 4 创建单选按钮列表对话框 笔者为该对话框添加了一个单选按钮数组显示列表 并实现了点击item选项监听事件 点击item选项后获取item内容 并以toast形式显示出来 5 创建复选框列表对话框 笔者为该对话框添加了一个复选框数组显示列表 并实现了点击复选框选项监听事件 选中复选框选项后 获取所有选中的选项 并以toast形式显示出来 创建复选框列表对话框并实现监听事件的代码如下: 6 创建自定义列表对话框 笔者为该对话框添加了自定义的布局文件 该自定义布局文件包含一个文本标签和一个文本框 并实现了确定按钮点击监听事件 在文本框输入内容后 获取文本框里的内容 并以toast形式显示出来 创建自定义列表对话框并实现监听事件的代码如下: 参见blog:http: blog csdn net andie guo article details 14145135">在Android开发中 我们经常会需要在Android界面上弹出一些对话框 比如询问用户或者让用户选择 关于Android Dialog的使用方法 已经有很多blog做出了详细的介绍(比如博客:7种形式的Android Dialog使用举例) 但是只是给出了创建 [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值