在android的编程中,对话框的用处是非常多的,然而,有时对对话框的需求也是不一样的,那么现在,就总结对话框的种类,以及事件的处理形势。
1、简单的对话框
public void showDialog(){
Dialog dialog = new AlertDialog.Builder(this)
.setTitle("标题")
.setMessage("消息")
.setPositiveButton("好", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("不好", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).create();
dialog.show();
}
public void showDialog(){
EditText et = new EditText(this);// 单独出来,方便取用户输入的数据。
Dialog dialog = new AlertDialog.Builder(this)
.setTitle("请输入")
.setIcon(android.R.drawable.ic_dialog_info)
.setView(et)
.setPositiveButton("确定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
}})
.create();
dialog.show();
}
public void showDialog(){
final String[] str = new String[]{"第一部","第二部","第二部","第三部","第四部","第五部","第六部"} ;
// 单独列出来方便之后取数据
Dialog dialog = new AlertDialog.Builder(this)
.setTitle("单选框,请选择")
.setSingleChoiceItems(str, 3, new DialogInterface.OnClickListener() {
// 3 代表默认选中str的index=3的那个单选框
@Override
public void onClick(DialogInterface dialog, int which) {
Log.e("DIYDialogActivity", "showDialog->you select " + str[which] ) ;
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.create();
dialog.show();
}
public void showDialog(){
final String[] str = new String[]{"第一部","第二部","第二部","第三部","第四部","第五部","第六部"} ;// 单独列出来方便之后取数据
boolean[] bstr = new boolean[]{true,false,false,false,false,false,false};
Dialog dialog = new AlertDialog.Builder(this)
.setTitle("多选框,请选择")
.setMultiChoiceItems(str, bstr, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
Log.e("DIYDialogActivity", "showDialog->" +
"you select " + str[which]+ "vaule = " +new Boolean(isChecked).toString() ) ;
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).create();
dialog.show();
}
public void showDialog(){
final String[] str = new String[]{"第一部","第二部","第二部","第三部","第四部","第五部","第六部"} ;
// 单独列出来方便之后取数据
Dialog dialog = new AlertDialog.Builder(this)
.setTitle("列表框,供选择")
.setItems(str, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.e("DIYDialogActivity", "showDialog---------------------you select " + which);
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.create();
dialog.show();
}
6、自定义的对话框
public void showDialog(){
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.dialog_showmsg, (ViewGroup) findViewById(R.id.view_dialog));
// 可指定对话框的背景色彩那些
Dialog dialog = new AlertDialog.Builder(this)
.setView(layout)
.create();
// 设置对话框的出现位置,借助于window对象
Window win = dialog.getWindow();
//win.setGravity(Gravity.CENTER);
//win.setGravity(Gravity.BOTTOM);
//win.setGravity(Gravity.TOP);
win.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);// 弹出对话框时,底部窗体,不变暗。
WindowManager.LayoutParams lp = win.getAttributes();
lp.x = -200;// x=0,y=0时,显示位置是屏幕中心。
lp.y = 0 ;
lp.alpha = 0.6f;// 对话框的透明度
win.setAttributes(lp);
Button but = (Button) layout.findViewById(R.id.but_positive);
but.requestFocus();
dialog.show();
}