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退出对话框 转 https://blog.csdn.net/wkh11/article/details/53081634在项目中很多时候会出现点击返回键出现 ...
- Android 自定义AlertDialog的实现
Android默认的AlertDialog太单调,我们可以通过继承原生的Dialog来实现自定义的Dialog. 本文的自定义Dialog和原生的AlertDialog的创建方式类似,通过一个静态Bu ...
- android 自定义AlertDialog(一段)
java: final AlertDialog dialog = new AlertDialog.Builder(mContext) .create(); dialog.setCancelable(f ...
- Android 自定义AlertDialog(退出提示框)
有时候我们需要在游戏或应用中用一些符合我们样式的提示框(AlertDialog) 以下是我在开发一个小游戏中总结出来的.希望对大家有用. 先上效果图: 下面是用到的背景图或按钮的图片 经过查找资料和参 ...
- Android 自定义AlertDialog的写法和弹出软键盘和覆盖状态栏
private void showMyDialog(int layoutId){ AlertDialog myDialog = new AlertDialog.Builder(context).cre ...
- android 自定义alertdialog和取消dialog
看代码: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle ...
- android 自定义AlertDialog
xml: alter_dialog_two <?xml version="1.0" encoding="utf-8"?> <LinearLay ...
- Android之自定义AlertDialog和PopupWindow实现(仿微信Dialog)
我们知道,在很多时候,我们都不用Android内置的一些控件,而是自己自定义一些自己想要的控件,这样显得界面更美观. 今天主要是讲自定义AlertDialog和popupWindow的使用,在很多需求 ...
- Xamarin.Android 记事本(二)自定义AlertDialog
导读 1.自定义一个AlertDialog 2.添加一条数据 正文 记事本应当有一个添加功能,这里我打算在右上角放一个item,然后点击这个item弹出一个对话框,输入名称,点击确定跳转到另一个act ...
随机推荐
- js截取相应的域名----正则匹配法 和校验Url 正则表达式
js截取相应的域名----正则匹配法 和校验Url 正则表达式 用javascript截取相应的域名方法两种,供大家参考 1.方法1: [javascript] view plain copy fun ...
- SSD基本工作原理
SSD主要由SSD控制器,FLASH存储阵列,板上DRAM(可选),以及跟HOST接口(诸如SATA,SAS, PCIe等)组成. SSD主控通过若干个通道(channel)并行操作多块FLASH颗粒 ...
- MATLAB 在同一个m文件中写多个独立的功能函数
MATLAB 在同一个m文件中写多个独立的功能函数,从而实现在外部可以直接调用这个文件中的某一个函数. 鉴于MATLAB的函数文件的函数名与文件名要一样,就需要有一个统一的接口来涵盖这些功能函数. 例 ...
- 基于24位AD转换模块HX711的重量称量实验(已补充皮重存储,线性温度漂移修正)
转载:http://www.geek-workshop.com/thread-2315-1-1.html 以前在X宝上买过一个称重放大器,180+大洋.原理基本上就是把桥式拉力传感器输出的mV级信号放 ...
- ubuntu(14.04) 下配置重写
1.开启rewrite模块,使用命令:a2enmod rewrite 2.在apache2.conf,配置你网站的目录(是目录而定)
- SpringBoot配置属性之MVC
SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...
- 《安卓考试》通用版ver-2,截图和源码
首先放出源码:https://github.com/chenyoca/AndroidTopicBankEx 然后是实际应用运行效果截图: 最后说明一下: 1.应用没有完成,应用的数据是模拟的. 2.应 ...
- 记录EntityValidationErrors的详细信息
0.一个问题 使用过EF的人相信都会遇到Validation failed for one or more entities. See ‘EntityValidationErrors’这种异常,这是由 ...
- 【Oracle】Oracle中复合数据类型
1,常见的操作数据库的技术有那些 jdbc 使用java 访问数据库的技术 PLSQL (procedure 过程化sql) 在数据库内部操作数据的技术 proc/c++ ...
- numpy 中的axis轴问题
在numpy库中,axis轴的问题比较重要,不同的值会得到不同的结果,为了便于理解,特此将自己的理解进行梳理 为了梳理axis,借助于sum函数进行! a = np.arange(27).reshap ...