在android开发中经常会用到对话框,以便于从用户那里获得用户的意图,已经信息等
(1)
这是最简单的Dialog对话框
public void showDialog() {
DialogInterface .OnClickListener diClickListener=new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
switch (which) {
case Dialog.BUTTON_POSITIVE:
Toast.makeText(MainActivity.this, "ok clicked", Toast.LENGTH_SHORT).show();
break;
case Dialog.BUTTON_NEGATIVE:
Toast.makeText(MainActivity.this, "Cancel clicked", Toast.LENGTH_SHORT).show();
default:
break;
}
}
};
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setMessage("确定要退出吗?");
builder.setTitle("提示");
builder.setPositiveButton("确认", diClickListener);
builder.setNegativeButton("取消", diClickListener);
builder.create().show();
}
(2)列表对话框
String[] items={"java","c++","c#"};
public void Dialog3(){
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle("列表");
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this,items[which], Toast.LENGTH_SHORT).show();
}
} );
builder.create().show();
}
(3)多选对话框
public void Dialog4(){
DialogInterface.OnClickListener dialogInterface=new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
switch (which) {
case Dialog.BUTTON_POSITIVE:
break;
case Dialog.BUTTON_NEGATIVE:
break;
default:
break;
}
}
};
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle("多选框");
builder.setMultiChoiceItems(items,itemsChecked, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, items[which]+(isChecked?"checked":"unchecked"), Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确认", dialogInterface);
builder.setNegativeButton("取消", dialogInterface);
builder.create().show();
}
(5)输入对话框
public void Dialog5(){
final EditText texta=new EditText(this);
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle(“请输入”);
builder.setIcon(android.R.drawable.ic_dialog_info).setView(texta);
//final String Thing=
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
inText.setText(texta.getText().toString());
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
builder.create().show();
}
补充两句
这里我们将输入的信息显示在界面上 这里用到了EditText和TextView
代码如下
EditText texta=new EditText(this);//声明一个EditText 对象
String Thing=texta.getText().toString()//获取EditText里面的io流
private TextView inText;//声明一个TextView对象
inText.setText(Thing);
(6)进度条对话框
进度条对话框要用到
ProgressDialog类
然后我们写一个事件 让他运行5秒 然后结束
public void Dialog6(){
// ProgressDialog myDialog=new ProgressDialog(this, "进度","加载中~~",true);
final ProgressDialog MyDialog = ProgressDialog.show( this, "进度" , " Loading. Please wait ... ", true);
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
Thread.sleep(5000);
MyDialog.dismiss();//清除对话框
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}