简单封装一个AlertDialog,调用只需要两行代码
2017-07-31 17:03
483 查看
直接上代码
在创建自定义AlertDialog的时候需要三个参数:
Context :上下文
String [] : item的名称
OnClickListener : 监听
initDialog是创建之后进行实例化的部分
dialogSize是用来设置大小和坐标。
在设置大小的地方
MyAlertDialog
public class MyAlertDialog { private Context context; private String[] strings; AlertDialog dialog; DialogInterface.OnClickListener onClick; public MyAlertDialog(Context context, String[] strings,DialogInterface.OnClickListener onClick) { this.context = context; this.strings = strings; this.onClick = onClick; } public void initDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setItems(strings, onClick); dialog = builder.create(); dialog.show(); } public void dialogSize(int width,int hight,int x,int y){ Window window = dialog.getWindow(); WindowManager.LayoutParams params = window.getAttributes(); window.setGravity(Gravity.RIGHT | Gravity.TOP); params.width = UIUtils.dip2px(context, width); params.height=UIUtils.dip2px(context, hight); params.x = UIUtils.dip2px(context, x); params.y = UIUtils.dip2px(context, y); dialog.getWindow().setAttributes(params); } }
这里使用了一个工具将dp转化成像素。
UIUtils
public class UIUtils { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } }
使用:
在需要用的地方
MyAlertDialog dialog=new MyAlertDialog(getActivity(), strings,new DialogInterface.OnClickListener() ); dialog.initDialog();
如果需要自定义大小和位置
再调用 dialog.dialogSize();
就这么多内容,如果有其他问题欢迎留言相关文章推荐
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- 项目需要写了一个,内核红黑数代码的封装使用
- 对ZXing进行封装,整合成一个调用简单的Scanner接口
- 一个封装了在Ajax下弹出Alert、showModelessDialog、showModalDialog窗口的类
- [已封装] DIV拖动类 支持在FF下拖动,调用简单 主要代码都有注释 适合初学者学习
- 代码改变世界 | 如何封装一个简单的 Koa
- 对PopupWindow常用API的简单封装,几行代码就搞定PopupWindow弹窗,使用Builder模式,链式调用,像使用AlertDialog 一样
- 【iOS开发-50】利用创建新的类实现代码封装,从而不知不觉实践一个简单的MVC实验,附带个动画
- 一个简单的类似通讯录的封装代码
- dialog使用方法(同一页面,调用一个js代码,实现多个不同样式的弹窗)
- 一个封装好的dialog工具类,减少重复的代码,简洁又方便使用!
- Android 运行时权限处理封装在 BaseActivity 中,方便业务申请时只需要简单的 1,2 行代码即可成功处理权限申请
- 安卓开发 封装 一个通用 的AlertDialog,亲测好用
- 一个封装了在Ajax下弹出Alert、showModelessDialog、showModalDialog窗口的类
- 简单的封装了一个OKHttp网络请求工具类,直接粘贴进去调用使用,很方便
- 今天根据别人的代码简单的封装了一个将java bean生成xml的一个工具类,运用了反射和泛型,重用性高。
- 用Jquery简单封装一个可重复调用的省市级联动插件
- 利用java基础写的一个简单的小游戏,没有UI界面,只是涉及到类的封装,方法的调用,方便日后复习用
- 一个封装了在Ajax下弹出Alert、showModelessDialog、showModalDialog窗口的类(转)
- js,jquery的一个简单按时间循环调用方法