android实现弹窗和自定义弹窗
2017-03-15 14:04
323 查看
**安卓中弹窗和自定义弹窗**
在安卓中我们有时候要实现弹窗的功能,实现弹窗有很多种实现的方法,有用系统默认的弹窗弹出窗口,但是有很多时候默认的弹窗满足不了我们,在这里我主要讲解两种自定义弹窗的方法和一种默认弹窗效果。
1、 首先我们来讲解一下默认弹窗是怎么实现的,代码如下:
// 创建builder实例
AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setIcon(R.drawable.question_dialog_icon);
builder.setTitle("提示"); builder.setMessage("游戏正在进行,你确定要切换么,切换游戏不会被保存的额?"); // 确定按钮的点击事件 builder.setPositiveButton(R.string.confirm, newDialogInterface.OnClickListener() { public void onClick(DialogInterfacedialog, int whichButton) { Intentintent = newIntent(JigsawActivity.this, MainActivity.class); // 设置退出程序的标志位 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); } }); // 取消按钮的点击事件 builder.setNegativeButton("取消", newDialogInterface.OnClickListener() { @Override public void onClick(DialogInterfacedialog, int which) { } }); builder.create().show();
2、实现一种自定义弹窗的效果,这种弹窗和上面有点类似,代码如下:
// 设置自定义弹窗
AlertDialog.Builderbuilder; AlertDialogalertDialog; // 生成一个inflater对象 LayoutInflaterinflater = LayoutInflater.from(mContext);
// 使用inflater对象根据布局文件生成一个view对象
Viewlayout = inflater.inflate(R.layout.success, null); // 取出控件 TextViewtxtTextView = (TextView) layout .findViewById(R.id.mddd); txtTextView.setText("游戏胜利!"); builder= newAlertDialog.Builder(mContext); builder.setView(layout); alertDialog= builder.create(); alertDialog.show();
3、实现自定义弹窗的效果,这种自定义弹窗是通过继承类来实现的,具体代码如下:
//该类用于实现弹出框的效果,实现自定义的功能
public classkeydialog extendsDialog {
// 用来存放代表对话框当中按钮的对象
private final View keys[] = new View[9];
// 存放已经使用过的数字
private int used[];
private shuduview shuduview;
// 构造函数第二个参数当中保存着已经用过的数字
public keydialog(Contextcontext, int[]used, shuduview shuduview) {
super(context); this.used = used; this.shuduview = shuduview;
}
@Override
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState); // 设置标题 setTitle("选择数字"); setContentView(R.layout.key); findviews(); // 遍历整个数组 for (int i = 0; i < used.length; i++) { if (used[i] != 0) { keys[used[i] -1].setVisibility(View.INVISIBLE); } } // 为所有的按钮设置监听器 setlisteners();
}
// 获取全部按钮
private void findviews() {
keys[0] = this.findViewById(R.id.key1); keys[1] = this.findViewById(R.id.key2); keys[2] = this.findViewById(R.id.key3); keys[3] = this.findViewById(R.id.key4); keys[4] = this.findViewById(R.id.key5); keys[5] = this.findViewById(R.id.key6); keys[6] = this.findViewById(R.id.key7); keys[7] = this.findViewById(R.id.key8); keys[8] = this.findViewById(R.id.key9);
}
// 通知shuduview对象刷新数据
private void returnresult(int title) {
shuduview.setSelectedtitle(title); // 取消对话框显示 dismiss();
}
// 设置按钮的监听事件
private void setlisteners() {
// 遍历整个按钮数组 for (int i = 0; i < keys.length; i++) { final int t = i + 1; keys[i].setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { returnresult(t); } }); }
}
}
调用上面这种自定义弹窗的方法是:
keydialog keydialog = new keydialog(mContext, usedaleady, this);
keydialog.show();
以上就是这次要实现的弹窗的效果。
相关文章推荐
- Android下用Activity实现圆角的自定义弹窗
- Android自定义加载等待弹窗控件(仿ios效果实现)
- Android编程实现的自定义弹窗(PopupWindow)功能示例
- Android下用Activity实现圆角的自定义弹窗
- Android自定义加载等待Dialog弹窗控件(仿ios效果实现)
- Android下用Activity实现圆角的自定义弹窗
- 使用FlycoDialog实现自定义Android弹窗对话框
- Android自定义加载等待Dialog弹窗控件(仿ios效果实现)
- Android自定义button的实现,未选中,按下,选中效果
- Android开发中自定义View设定到FrameLayout布局中实现多组件显示
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
- android 自定义SeekBarPreference 实现
- Android实现自定义铃音
- Android游戏开发学习笔记(一):tweened animation自定义动画的实现
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
- android实现自定义标题栏
- PopupWindow进阶用法——android上实现类似UCweb的自定义menu,完全模拟系统事件
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!