android中的 AlertDialog的个人见解
来源:互联网 发布:linux培训上海 编辑:程序博客网 时间:2024/06/05 11:56
工作一年有余,自认能力还是不够,所以准备整理一下笔记,与君共勉!
这是我看API文档后的第一次笔记,或许写的不够完善,或许写的不够正确,望各位提出指导和批评,谢谢!
本文主要说明简单受用的提示对话框---Dialog.
android APIAndroid API 支持以下类型的对话框:
AlertDialog,ProgressDialog,DatePickerDialog,TimePickerDialog.和自定义的对话框。
1,AlertDialog
AlertDialog一般是两个按钮positive和native,最多不超过三个即positive、native和neutral。
现列举几个经常用到的AlertDialog.
(1),最普通的提示对话框,但是有三个按钮。
AlterDialog.Builder builder = new AlterDialog.Builder(this);
builder.setMessage(“你喜欢我吗?”)
.setCanclable(false) //不能按back键取消
.setPositiveButton(“喜欢”,new DialogInterface.OnClickListener(){
Pubilc void onClick(DialogInterface dilog, int id){
ManiActivity.this.finish();
}
})
.setNativeButton(“不喜欢”,new DialogInterface.OnClickListener(){
Public void onClick(DialogInterface dialog,int id){
Dialog.cancel();
}
})
.setNeutralButton(“不知道”,new DialogInerface.OnClickListenre(){
Pubilc void onClick(DialogBuilder dialog,int id){
}
})
(2),要创建一个具有可选择性的AlertDialog,使用setItems()方法。Final CharSequence[] items = {“red”,”blue”,”black”};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(“pick a color”);
builder.setItems(items,new DialogInterface.OnClickListener(){
Public void onClick(DialogInterface dialog, int item){
Toast.makeText(getApplicationContext(),items[item],Toast.LENGTH_SHORT ).show();
}
})
AlertDialog alert = builder.create();
首先定义一个名称,再调用setItems()增加一个可选列表,该列表接受一个选项的名称和DialogInterface.OnClickListener,后者定义了选项的回应。
(3),类似radio buttons 的AlertDialog。实例如下:
Final CharSequence[] items = {“red”,”blue”,”white”};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(“pick a color”)
.setSingleChoiceItems(items,0,new DialogInterface.OnClickListener(){
Public void onClick(DialogInterface dialog,int item){
selectedColor = item;
}
})
.setPosetiveButton(“确认”,new DialogInterface.OnClickListener(){
Public void onClick(DialogInterface dialog,int item){
Toast.makeText(this,items[item],Toast.LENGTH_SHORT).show();
}
})
.setNativeButton(“取消”, new DialogInterface.OnClickListener(){
Public void onClick(DialogInterface dialog,int item){
}
});
AlertDialog alert = builder.create();
重点:setSingleChoiceItems(CharSquence[],int,new DialogInterface.OnClickListener())
第一个参数是要显示的数据的数组,第二个参数是初始值(初始被选中的item),第三个参数是点击某个item的触发事件
(4),类似checkboxs的AlertDialog.实例入下:
Final String[] fruits= new String[] {“apple”,”juice”.”banana”};
Final boolean[] selectedFruits = new boolean[]{ture,false,false};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(“which fruit do you like?”);
.setMultiChoiceItems(fruits,selectedFruits,new DialogInterface.OnMultiChoiceClickListener(){
Pubilc void onClick(DialogInterface dialog,int item,boolean isChecked){
selectedFruits[item] = isChecked;
}
})
.setPosetiveButton(“确认”,new DialogInterface.OnClickListener(){
Public void onClick(DialogInterface dialog,int which){
StringBuilder sb = new StringBuilder();
For(int i = 0; i<selectedFruits.length;i++){
If(selectedFruits[i]=true){
Sb.append(fruits[i]+”、”);
}
}
Toast.makeText(this,sb.toString(), Toast.LENGTH_SHORT);
}
})
.setNative(“取消”,new DialogInterface.OnClickListener(){
Public void onClick(DialogInterface dialog, int which){
}
})
AlertDialog alert = builder.create();
注意:用setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, final OnMultiChoiceClickListener listener)方法来实现类似CheckBox的AlertDialog
第一个参数是要显示的数据的数组,第二个参数是选中状态的数组,第三个参数是点击某个item的触发事件。
(5),自定义提示框,在View Dialog 中 用以下方法加载view布局。
setContentView(R.layout.main);
LayoutInflater layoutInflater = LayoutInflater.from(this);
View myView = layoutInflate(R.layout.login,null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(“苗薇薇”)
.setView(myView)
.setPosetiveButton();
- android中的 AlertDialog的个人见解
- adapter 中的viewholder的个人见解笔记
- 《论Android的发展方向(个人见解)》
- Android LauncherMode个人见解
- Android Handler个人见解
- J2ME的个人见解
- UML的个人见解
- Http的个人见解
- GeoQuiz的个人见解
- JVM 的个人见解
- 反射的个人见解
- BeautifulSoup的个人见解
- 针对php面试题中的问题的一些个人见解
- Android之Activity个人见解
- android button 的clickable 和 enable属性的个人见解
- 关于android自定义相机连续对焦功能的个人见解
- Android对ViewGroup中OnMeasure方法的一些个人见解
- 个人对于学习android开发的一点见解
- [LeetCode] Binary Tree Maximum Path Sum
- iOS 8 AutoLayout与Size Class自悟
- duplicate symbols for architecture armv7错误
- Android ANT 多渠道打包解决方案
- 2014年总结
- android中的 AlertDialog的个人见解
- 【session内部机制】PHP的session_set_save_handler 执行机制
- Python unittest parametrized test cases
- linux工具安装
- Jenkins集成--未找到导入项目
- problem中Project'XX'is missing required library:'[路径]\XXX.jar'解决方法
- iOS开发入门:Xcode常用快捷键
- 11个强大的Visual Studio调试小技巧
- C语言模拟试题4