刚开始学习Android不久,今天看到CSDN上这篇文章不错,特地转过来学习学习
1.确定取消对话框对话框中有2个按钮
通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件。
我们使用AlerDialog
创建对话框
-
AlertDialog.Builderbuilder=newAlertDialog.Builder(MainDialog.this);
使用builder设置对话框的title
button icon 等等
-
builder.setIcon(R.drawable.icon);
-
builder.setTitle("你确定要离开吗?");
-
builder.setPositiveButton("确定",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
-
showDialog("你选择了确定");
-
}
-
});
-
builder.setNegativeButton("取消",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
-
showDialog("你选择了取消");
-
}
-
});
-
builder.create().show();
这个dialog用于现实onClick后监听的内容信息
-
privatevoidshowDialog(Stringstr){
-
wAlertDialog.Builder(MainDialog.this)
-
.setMessage(str)
-
.show();
-
}
2.多个按钮信息框
-
AlertDialog.Builderbuilder=newAlertDialog.Builder(MainDialog.this);
-
builder.setIcon(R.drawable.icon);
-
builder.setTitle("投票");
-
builder.setMessage("您认为什么样的内容能吸引您?");
-
builder.setPositiveButton("有趣味的",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
showDialog("你选择了有趣味的");
-
}
-
});
-
builder.setNeutralButton("有思想的",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
showDialog("你选择了有思想的");
-
}
-
});
-
builder.setNegativeButton("主题强的",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
showDialog("你选择了主题强的");
-
}
-
});
-
builder.create().show();
3.列表框
这个数组用于列表选择
-
finalString[]mItems={"item0","item1","itme2","item3","itme4","item5","item6"};
-
AlertDialog.Builderbuilder=newAlertDialog.Builder(MainDialog.this);
-
builder.setTitle("列表选择框");
-
builder.setItems(mItems,newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhich){
-
-
showDialog("你选择的id为"+which+","+mItems[which]);
-
}
-
});
-
builder.create().show();
4.单项选择列表框
mSingleChoice 用于记录单选中的ID
-
AlertDialog.Builderbuilder=newAlertDialog.Builder(MainDialog.this);
-
-
mSingleChoiceID=-1;
-
builder.setIcon(R.drawable.icon);
-
builder.setTitle("单项选择");
-
builder.setSingleChoiceItems(mItems,0,newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
mSingleChoiceID=whichButton;
-
showDialog("你选择的id为"+whichButton+","+mItems[whichButton]);
-
}
-
});
-
builder.setPositiveButton("确定",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
if(mSingleChoiceID>0){
-
showDialog("你选择的是"+mSingleChoiceID);
-
}
-
}
-
});
-
builder.setNegativeButton("取消",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
-
}
-
});
-
builder.create().show();
5.进度条框
点击进度条框按钮后
开启一个线程计算读取的进度 假设读取结束为 100
Progress在小于100的时候一直在线程中做循环++
只到读取结束后,停止线程。
-
mProgressDialog=newProgressDialog(MainDialog.this);
-
mProgressDialog.setIcon(R.drawable.icon);
-
mProgressDialog.setTitle("进度条窗口");
-
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
-
mProgressDialog.setMax(MAX_PROGRESS);
-
mProgressDialog.setButton("确定",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
-
}
-
});
-
mProgressDialog.setButton2("取消",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
-
}
-
});
-
mProgressDialog.show();
-
newThread(this).start();
-
-
icvoidrun(){
-
intProgress=0;
-
while(Progress<MAX_PROGRESS){
-
try{
-
Thread.sleep(100);
-
Progress++;
-
mProgressDialog.incrementProgressBy(1);
-
}catch(InterruptedExceptione){
-
-
e.printStackTrace();
-
}
-
-
}
6.多项选择列表框
MultiChoiceID
用于记录多选选中的id号 存在ArrayList中
选中后 add 进ArrayList
取消选中后 remove 出ArrayList。
-
ArrayList<Integer>MultiChoiceID=newArrayList<Integer>();
-
AlertDialog.Builderbuilder=newAlertDialog.Builder(MainDialog.this);
-
-
MultiChoiceID.clear();
-
builder.setIcon(R.drawable.icon);
-
builder.setTitle("多项选择");
-
builder.setMultiChoiceItems(mItems,
-
newboolean[]{false,false,false,false,false,false,false},
-
newDialogInterface.OnMultiChoiceClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton,
-
booleanisChecked){
-
if(isChecked){
-
MultiChoiceID.add(whichButton);
-
showDialog("你选择的id为"+whichButton+","+mItems[whichButton]);
-
}else{
-
MultiChoiceID.remove(whichButton);
-
}
-
-
}
-
});
-
builder.setPositiveButton("确定",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
Stringstr="";
-
intsize=MultiChoiceID.size();
-
for(inti=0;i<size;i++){
-
str+=mItems[MultiChoiceID.get(i)]+",";
-
}
-
showDialog("你选择的是"+str);
-
}
-
});
-
builder.setNegativeButton("取消",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
-
}
-
});
-
builder.create().show();
7.自定义布局
讲到自定义布局我就得多说一说了,为什么要多说一说呢?
其实自定义布局在Android的开发中非常重要 因为它能让开发者做出自己五彩缤纷的Activity 而不用去使用系统枯燥的界面。
自定义dialog有什么好处?
比如我们在开发过长当中 要通过介绍系统发送的一个广播弹出一个dialog . 但是dialog必需是基于activity才能呈现出来 如果没有activity 的话 程序就会崩溃。所以我们可以写一个自定义的 dialog 把它定义成一个activity
这样我们收到一条打开dialog的广播后 直接启动这个 activity 程序正常运行~~
这就是自定义dialog的好处。
注明:下面这个例子只是写了自定义dialog 没有把它单独的写在一个activity中 如果须要的话 可以自己改一下。
-
AlertDialog.Builderbuilder=newAlertDialog.Builder(MainDialog.this);
-
LayoutInflaterfactory=LayoutInflater.from(this);
-
finalViewtextEntryView=factory.inflate(R.layout.test,null);
-
builder.setIcon(R.drawable.icon);
-
builder.setTitle("自定义输入框");
-
builder.setView(textEntryView);
-
builder.setPositiveButton("确定",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
-
EditTextuserName=(EditText)textEntryView.findViewById(R.id.etUserName);
-
EditTextpassword=(EditText)textEntryView.findViewById(R.id.etPassWord);
-
showDialog("姓名:"+userName.getText().toString()+"密码:"+password.getText().toString());
-
}
-
});
-
builder.setNegativeButton("取消",newDialogInterface.OnClickListener(){
-
publicvoidonClick(DialogInterfacedialog,intwhichButton){
-
-
}
-
});
-
builder.create().show();
-
<spanstyle="color:#000000;"><?xmlversion="1.0"encoding="utf-8"?>
-
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
-
android:layout_height="wrap_content"
-
android:layout_width="wrap_content"
-
android:orientation="horizontal"
-
android:id="@+id/dialog">
-
<LinearLayout
-
android:layout_height="wrap_content"
-
android:layout_width="wrap_content"
-
android:orientation="horizontal"
-
android:id="@+id/dialogname">
-
-
<TextViewandroid:layout_height="wrap_content"
-
android:layout_width="wrap_content"
-
android:id="@+id/tvUserName"
-
android:text="姓名:"/>
-
<EditTextandroid:layout_height="wrap_content"
-
android:layout_width="wrap_content"
-
android:id="@+id/etUserName"
-
android:minWidth="200dip"/>
-
</LinearLayout>
-
<LinearLayout
-
android:layout_height="wrap_content"
-
android:layout_width="wrap_content"
-
android:orientation="horizontal"
-
android:id="@+id/dialognum"
-
android:layout_below="@+id/dialogname"
-
>
-
<TextViewandroid:layout_height="wrap_content"
-
android:layout_width="wrap_content"
-
android:id="@+id/tvPassWord"
-
android:text="密码:"/>
-
<EditTextandroid:layout_height="wrap_content"
-
android:layout_width="wrap_content"
-
android:id="@+id/etPassWord"
-
android:minWidth="200dip"/>
-
</LinearLayout>
-
</RelativeLayout></span>
8.读取进度框
显示一个正在转圈的进度条loading
-
mProgressDialog=newProgressDialog(this);
-
mProgressDialog.setTitle("读取ing");
-
mProgressDialog.setMessage("正在读取中请稍候");
-
mProgressDialog.setIndeterminate(true);
-
mProgressDialog.setCancelable(true);
-
mProgressDialog.show();
分享到:
相关推荐
在Android开发中,对话框(Dialog)是一种常见的用户交互组件,用于向用户显示临时信息或者进行简单的用户操作选择。本文将深入探讨Android对话框的多种类型及其使用技巧,旨在帮助开发者更好地理解和应用这一功能。...
这在处理大量PDF文档,如报告集、手册或试卷合集时非常有用。以下是一些合并PDF的方法: 1. **使用Adobe Acrobat Pro**:打开软件,选择“工具”>“合并文件”,然后添加你需要合并的PDF文件,调整顺序,最后点击...
- 在弹出的“数字”对话框中选择“数字类型”为“壹、贰、叁……”等中文数字版式。 - 单击“确定”,数字将被转换为中文大写金额。 #### 5. 去掉自动编号功能 对于不喜欢Word自动编号功能的用户来说,可以通过以下...
- 在"设置图片格式"对话框的"大小"选项卡中,你会看到一个"旋转"部分,这里可以输入你想要的旋转度数,精确调整图片的旋转角度。设置完成后点击"确定",图片将按照设定的角度旋转。 3. **图片工具栏旋转法**: - ...
本资源“VC MFC操作Excel 20个源代码合集”汇集了20个示例,涵盖了从SQL数据库导入数据到Excel,从Excel导出数据到SQL,以及设置Excel公式等多种实用场景,为开发者提供了一个丰富的学习和参考资源。 1. **Excel...
例如,`MsgBox`函数用于弹出一个对话框显示信息,而`Len`函数则用于计算字符串的长度。这些函数在编写脚本时大大简化了任务,提供了模块化的编程方式。 属性则定义了对象的状态或特征。例如,`Font`属性可以用来...
CAD(Computer-Aided Design)是计算机辅助设计的缩写,是一种广泛应用于工程、建筑、产品设计等领域的技术。LISP(List Processing)语言在CAD领域中有着特殊的应用,主要是通过扩展CAD软件的功能来提高设计效率。...
在"网页效果合集1-JS脚本等"这个压缩包中,包含了各种实用的JS脚本和效果示例,旨在帮助开发者创建吸引人的用户体验。 1. **JS弹出对话框源代码下载**: 弹出对话框是网页中常见的交互元素,用于提示用户信息或...
合集中涵盖了Windows 7系统的各个方面的图标,如文件类型(如文档、图片、音乐、视频等)、操作状态(如错误、警告、成功等)、系统组件(如网络、设备驱动器、控制面板等)以及用户界面元素(如窗口、菜单、对话框...
- `window.confirm()`:显示一个确认对话框,用户可以选择确认或取消。 ### 23. 提示输入框 - `window.prompt()`:弹出一个对话框让用户输入信息。 ### 24. 设置当前页面URL - `window.location.href="URL"`:更改...
经典C#WinForm实例源码合集(200个): 1. **窗体技巧**: - 在这里,你将找到关于如何创建、布局和自定义Windows窗体的代码示例。这可能包括设置窗体大小、位置、透明度,以及添加各种事件处理程序,如按钮点击、...
### Word基础教程合集一:使用框架切分文档 #### 一、从Word文档提取所有标题(不包括标题下的内容) 在Word文档中提取标题是一个非常实用的功能,尤其是在需要整理文档大纲或者创建导航链接的时候。以下步骤展示...
Word中的表格功能虽然不如Excel那样强大,...了解以上知识点后,你就能在Word中有效地进行简单的数学计算和数据分析,而不必每次都转到Excel。熟练掌握这些技巧,可以大大提高工作效率,特别是在处理简短的统计数据时。
7. **弹出窗口和提示**:JavaScript可以创建模态对话框、提示框和通知,用于显示重要信息或者用户交互。 8. **拖放功能**:通过JavaScript可以实现拖放操作,让用户能够自由移动页面元素,提升操作便捷性。 9. **...
这些U32函数库是Authorware开发者的重要资源,它们极大地丰富了Authorware的编程语义,使得开发者能够构建功能更强大、交互性更强的多媒体应用。通过深入理解和熟练运用这些U32函数,开发者可以创造出更加专业且用户...
3. **Qt Creator登录对话框**:创建自定义的登录对话框,涉及输入验证和事件处理。 4. **Qt Creator添加菜单图标**:为应用添加菜单项并设置图标,提升用户体验。 附录部分介绍了两种不同的资源文件添加方法,包括...
- 或者使用自定义格式,通过“格式单元格”对话框设置特定格式 3. **按名单批量创建文件夹** - 当需要创建大量文件夹并按特定名称(如员工名单)命名时,可以借助Excel和批处理文件实现: - 在Excel中列出员工...
MFC的CDataExchange类和DDX(Dialog Data Exchange)机制则帮助开发者轻松管理对话框中的控件与数据的交互,使得用户在界面上的操作能实时反映到文件传输的进程。 接着,我们转向Java。Java是一种跨平台的编程语言...
"基础汉化"指的是对Eclipse IDE的基本组件、菜单、对话框、提示信息等内容进行的翻译,比如项目管理、源代码编辑器、构建工具、调试器等。这些基础功能的汉化,使得开发者在日常编程工作中可以更加流畅地操作。 而...
在“js网页特效合集”中,我们通常会找到一系列使用JavaScript实现的炫酷视觉效果,这些特效能极大地提升网页的吸引力和用户体验。 1. **动态加载**:JavaScript 可以实现内容的动态加载,比如图片懒加载技术,只有...