工作一年有余,自认能力还是不够,所以准备整理一下笔记,与君共勉!
这是我看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();