您的位置:首页 > 移动开发 > Android开发

Dialog 对话框

2016-04-24 18:51 435 查看
在当前界面弹出小窗口,用于提示重要提示信息,提示用户输入信息,确认信息,
或者显示某种状态,如下载进度,退出提示等等。
一般情况下,用户需要与对话框进行交互,然后返回到被遮盖的界面
以继续运行当前的应用程序。
几种常见的Dialog
确认Dialog
单选按钮Dialog
多选按钮Dialog
列表Dialog

注意:
要创建一个AlertDialog,需要用到AlertDialog.Builder中的create()方法。

常用方法
setTitle:为Dialog设置标题
setIcon:为Dialog设置图标
setMessage: 为Dialog设置内容
setView:给Dialog是设置自定义样式
setItems:设置Dialog要显示的一个List,一般用于显示几个命令时
setMultiChoiceItems:设置Dialog显示一系列的复选框
setSingleChoiceItems:设置单选按钮
setNeutralButton:普通按钮
setPositiveButton:给对话框添加确认按钮
setNegativeButton:对话框添加取消按钮

example:
-----------------------------------------------------------------------------------------------------------
//各种对话框的创建
/*
*     其中自定义对话框实现步骤如下
*     首先 先把自定义的.xml文件转换成View对象(之前已经使用过)
*     LayoutInflater inflater = LayoutInflater.from(this);

*     View view = inflater.inflate(R.layout.dialog,null);
*     然后调用builder的setView方法添加    
*/
public class MainActivity extends Activity {

 String []  singledata={"中国" ,"日本" ,"美国", "俄罗斯"};

 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);

  initEvent();

 }

 

 private void initEvent() {

  // TODO Auto-generated method stub

  findViewById(R.id.dialog_bt1).setOnClickListener(new OnClickListener() {

   

   public void onClick(View v) {

    // TODO Auto-generated method stub

    showDialog1();

   }

  });

  findViewById(R.id.dialog_bt2).setOnClickListener(new OnClickListener() {

   

   public void onClick(View v) {

    // TODO Auto-generated method stub

    showDialog2();

   }

  });

  findViewById(R.id.dialog_bt3).setOnClickListener(new OnClickListener() {

   

   public void onClick(View v) {

    // TODO Auto-generated method stub

    showDialog3();

   }

  });

  findViewById(R.id.dialog_bt4).setOnClickListener(new OnClickListener() {

   

   public void onClick(View v) {

    // TODO Auto-generated method stub

    showDialog4();

   }

  });

  findViewById(R.id.dialog_bt5).setOnClickListener(new OnClickListener() {

   

   public void onClick(View v) {

    // TODO Auto-generated method stub

    showDialog5();

   }

  });

 }

 protected void showDialog5() {

  // TODO Auto-generated method stub

  AlertDialog.Builder builder = new AlertDialog.Builder(this);

  builder.setTitle("自定义对话框");

  LayoutInflater inflater = LayoutInflater.from(this);

  View view = inflater.inflate(R.layout.dialog,null);

  builder.setView(view);

  AlertDialog dialog = builder.create();

  dialog.show();

 }

 protected void showDialog4() {

  // TODO Auto-generated method stub

  AlertDialog.Builder builder = new AlertDialog.Builder(this);

  builder.setTitle("列表对话框");

  builder.setIcon(R.drawable.ic_launcher);

  builder.setItems(singledata, new DialogInterface.OnClickListener() {

   

   public void onClick(DialogInterface dialog, int which) {

    // TODO Auto-generated method stub

    Toast.makeText(MainActivity.this,"点击了"+singledata[which], Toast.LENGTH_SHORT).show();

   }

  });

  AlertDialog dialog = builder.create();

  dialog.show();

 }

 protected void showDialog3() {

  // TODO Auto-generated method stub

  AlertDialog.Builder builder = new AlertDialog.Builder(this);

  builder.setTitle("多选对话框");

  builder.setIcon(R.drawable.ic_launcher);

  builder.setPositiveButton("完成", new DialogInterface.OnClickListener() {

   

   public void onClick(DialogInterface dialog, int which) {

    // TODO Auto-generated method stub

    Toast.makeText(MainActivity.this,"完成", Toast.LENGTH_SHORT).show();

    dialog.dismiss();

   }

  });

  builder.setMultiChoiceItems(singledata, null, new DialogInterface.OnMultiChoiceClickListener() {

   

   public void onClick(DialogInterface dialog, int which, boolean isChecked) {

    // TODO Auto-generated method stub

    if(isChecked)

    {

     Toast.makeText(MainActivity.this, "选择了"+singledata[which], Toast.LENGTH_SHORT).show();

    }

    else

    {

     Toast.makeText(MainActivity.this, "取消了"+singledata[which], Toast.LENGTH_SHORT).show();

    }

   }

  });

  

  AlertDialog dialog =builder.create();

  dialog.show();

 }

 protected void showDialog2() {

  // TODO Auto-generated method stub

  AlertDialog.Builder builder = new AlertDialog.Builder(this);

  builder.setTitle("单选对话框");

  builder.setIcon(R.drawable.ic_launcher);

  //第一次参数为数组,即是单选框的内容

  builder.setSingleChoiceItems(singledata, 0, new DialogInterface.OnClickListener() {

   

   public void onClick(DialogInterface dialog, int which) {

    // TODO Auto-generated method stub

    String stt = singledata[which];

    Toast.makeText(MainActivity.this,"你选择的是:"+stt,Toast.LENGTH_SHORT).show();

   }

  });

  AlertDialog dialog =builder.create();

  dialog.show();

 }

 private void showDialog1() {

  // TODO Auto-generated method stub

  AlertDialog.Builder builder = new AlertDialog.Builder(this);

  builder.setTitle("确认对话框");

  builder.setIcon(R.drawable.ic_launcher);

  builder.setMessage("确认对话框的内容");

  builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

   

   public void onClick(DialogInterface dialog, int which) {

    // TODO Auto-generated method stub

    Toast.makeText(MainActivity.this,"点击了确定按钮", Toast.LENGTH_SHORT).show();

   }

  });

  builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

   

   public void onClick(DialogInterface dialog, int which) {

    // TODO Auto-generated method stub

    Toast.makeText(MainActivity.this,"点击了取消按钮", Toast.LENGTH_SHORT).show();

   }

  });

  AlertDialog dialog =builder.create();

  dialog.show();

 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android