Android自定义AlertDialog
常见的一种方法:
[html] view plaincopyprint?
AlertDialog.Builder builder;
AlertDialog alertDialog;
LayoutInflater inflater = getLayoutInflater();
// 添加自定义的布局文件
View layout = LayoutInflater.from(TestOne.this).inflate(
R.layout.dialog, null);
final TextView text = (TextView) layout.findViewById(R.id.tv1);
// 添加点击事件
text.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
text.setText("call");
}
});
builder = new AlertDialog.Builder(TestOne.this);
alertDialog = builder.create();
// 去掉边框的黑色,因为设置的与四周的间距为0
alertDialog.setView(layout, 0, 0, 0, 0);
alertDialog.show();
// 修改大小
WindowManager.LayoutParams params = alertDialog.getWindow()
.getAttributes();
params.width = 350;
params.height = 200;
alertDialog.getWindow().setAttributes(params);
这样 ,重新给它填充自定义的布局视图,但缺乏可扩展性,而且每次使用还得重新定义。
重写AlertDialog类,定义方法:
[html] view plaincopyprint?
/**
* 自定义的对话框
*/
public abstract class MyAlerDialog extends AlertDialog implements
android.view.View.OnClickListener {
protected MyAlerDialog(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
/**
* 布局中的其中一个组件
*/
private TextView txt;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// 加载自定义布局
setContentView(R.layout.dialog);
// setDialogSize(300, 200);
txt = (TextView) findViewById(R.id.tv1);
txt.setOnClickListener(this);
}
/**
* 修改 框体大小
*
* @param width
* @param height
*/
public void setDialogSize(int width, int height) {
WindowManager.LayoutParams params = getWindow().getAttributes();
params.width = 350;
params.height = 200;
this.getWindow().setAttributes(params);
}
public abstract void clickCallBack();
/**
* 点击事件
*/
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v == txt) {
clickCallBack();
}
}
}
在活动中使用:
[html] view plaincopyprint?
MyAlerDialog mydialog = new MyAlerDialog(this) {
// 重写callback方法
@Override
public void clickCallBack() {
// TODO Auto-generated method stub
btn.setText("call");
}
};
mydialog.show();
自己写的功能就封装了两个,有需要的童鞋可以很容易的扩展。这种方法,显然相对于上一种要有优势得多啦。
Android自定义AlertDialog相关推荐
- Android自定义AlertDialog的控件获取操作
Android自定义AlertDialog的控件获取操作 在自定义的AlertDialog布局虽然可以显示,但是试过很多方法都不能获得其中的控件进行操作,找了很多方法最后这种方法可以. dialog的 ...
- android activity传值到dialog,android 自定义AlertDialog 与Activity相互传递数据
**主要实现功能:** 1.从Activity的TextView中获取字符串设置到AlertDialog的TextView和EditText中 2.将AlertDialog的EditText中的值设置 ...
- Android 自定义AlertDialog对话框
2019独角兽企业重金招聘Python工程师标准>>> 系统默认的AlertDialog,与项目的UI不统一,所以,改了一下,定义了一样式,最终效果如下图: 另外,为了尽量少改原来的 ...
- Android 自定义AlertDialog类
还是先从最简单的开始吧,然后一步一步的扩展. 为了保证软件上所谓的低耦合度和可重用性,这里不得不需要单独建立一个类CustomerDialog,然后继承AlertDialog public class ...
- Android 自定义AlertDialog
Android 自定义popuWindow 对于项目需求中,系统的弹出框不能满足我们的需求,就只能通过自定义布局来实现自己相对应的功能,这里总结一篇关于AlertDialog的 具体操作 这里把弹出框 ...
- Android 自定义AlertDialog,调用方法与系统一致
2019独角兽企业重金招聘Python工程师标准>>> 由于android原生的AlertDialog都一致,有时为了和你的项目的Dialog保持一致,你最先想到的就是有没有Aler ...
- android自定义alertdialog不现实输入法,自定义的dialog中的EditText无法弹出输入法解决方案...
1.解决无法弹出输入法: 在show()方法调用之前,用dialog.setView(new EditText(context))添加一个空的EditText,由于是自定义的AlertDialog,有 ...
- android+自定义alertdialog,安卓自定义AlertDialog
AlertDialog.png 使用方法 example: DialogUtil.showAlertDialog(getActivity(), R.mipmap.restart, "退出提示 ...
- Android 自定义AlertDialog(退出提示框)
有时候我们需要在游戏或应用中用一些符合我们样式的提示框(AlertDialog) 以下是我在开发一个小游戏中总结出来的.希望对大家有用. 先上效果图: 下面是用到的背景图或按钮的图片 经过查找资料和参 ...
最新文章
- ASP.NET 2.0 页面编译方式
- Electric shaver and clean: workable when power is low
- 一分钟带你快速进入Nacos的世界,史上最简易教程!零基础也能看明白!谁反对?
- jwt:介绍以及创建token
- 比那 施氏食狮史 还要强的文章
- linux卸载emc硬盘,关于EMC symmetrix新分磁盘在Linux主机无法fdisk? 求助
- 搞定问题描述的5W2H法是什么
- 测试了几款mysql监控工具
- C语言 C语言知识点总结(思维导图版)
- Linux的NFS(net file systen)
- 深入探讨apply()方法的作用
- 总结:硬盘随机读写与顺序读写的性能差异
- python读取163邮件内容_python 3.x 163邮箱登陆,邮件读取
- 关于ListView的优化
- 伟东云学堂—几何画板学习
- 事务四大特性(ACID)原子性、一致性、隔离性、持久性
- 使用poi来导入具有合并单元格的excel表格
- 牛顿法迭代法 | matlab实现
- A component required a bean of type ‘com.lw.mapper.StudentMapper‘ that could not be found.
- align-content 和align-items的区别