Android:对话框

来源:互联网 发布:淘宝虚假交易没有清洗 编辑:程序博客网 时间:2024/06/07 04:59


当你的应用需要显示一个进度条或需要用户对信息进行确认时,可以使用对话框来完成。

下面代码将打开一个如右图所示的对话框:

new AlertDialog.Builder(context)

  .setTitle("java培训")

  .setCancelable(false)//设置不能通过后退按钮关闭对话框

  .setMessage("浏览传智播客网站?")

  .setPositiveButton("确认",

  newDialogInterface.OnClickListener(){

  publicvoid onClick(DialogInterfacedialoginterface,inti){

            Uri uri = Uri.parse("http://www.itcast.cn/");//打开链接

            Intentintent = new Intent(Intent.ACTION_VIEW,uri);

            startActivity(intent);

        }

  })

  .setNegativeButton("取消", newDialogInterface.OnClickListener() {

              public void onClick(DialogInterface dialog,int id) {

                  dialog.cancel();

              }

     })

     .show();//显示对话框

上面代码采用的是一个链式调用,像setTitle()setMessage()这些方法,他们的返回值都是当前对话框对象。





创建带单选项列表的对话框


下面代码将打开一个如右上图所示的选项列表对话框:

final String[] items ={"java", ".net", "php"};

new AlertDialog.Builder(SenderNotificationActivity.this).setTitle("选择语言")

  .setItems(items, newDialogInterface.OnClickListener() {

      public void onClick(DialogInterface dialog,int item) {

              Toast.makeText(getApplicationContext(), items[item],

  Toast.LENGTH_SHORT).show();

      }

  }).show();//显示对话框


下面代码将打开一个如右下图所示的带单选框的列表对话框:

final String[] items ={"java", ".net", "php"};

new AlertDialog.Builder(SenderNotificationActivity.this).setTitle("选择语言")

.setSingleChoiceItems(items, 1, newDialogInterface.OnClickListener() {

   public void onClick(DialogInterface dialog,int item) {

          Toast.makeText(getApplicationContext(), items[item],

  Toast.LENGTH_SHORT).show();

          dialog.cancel();

    }

}).show();//显示对话框

setSingleChoiceItems()的第二个参数是设置默认选项,

选项索引从0开始,-1代表不选择任何选项。




创建带多选项列表的对话框


下面代码将打开一个如右下图所示的多选项列表对话框:

final String[] items ={"java", ".net", "php"};

new AlertDialog.Builder(SenderNotificationActivity.this).setCancelable(false)

.setTitle("选择语言")

.setMultiChoiceItems(items, newboolean[]{false,true,false}, newDialogInterface.OnMultiChoiceClickListener() {

  @Override

  publicvoid onClick(DialogInterface dialog,int which, booleanisChecked) {

  if(isChecked){

  Toast.makeText(getApplicationContext(), items[which],

  Toast.LENGTH_SHORT).show();

  }

  }

  })

.setPositiveButton("确认",

  newDialogInterface.OnClickListener(){

  publicvoid onClick(DialogInterfacedialoginterface,inti){

  dialoginterface.dismiss();

   }

})

.show();//显示对话框



进度对话框(ProgressDialog)


l使用代码ProgressDialog.show(ProgressDialogActivity.this, "请稍等", "数据正在加载中...", true);创建并显示一个进度对话框。
l调用setProgressStyle()方法设置进度对话框风格。有两种风格:

    ProgressDialog.STYLE_SPINNER旋体进度条风格(为默认风格)

    ProgressDialog.STYLE_HORIZONTAL横向进度条风格

public class ProgressDialogActivity extends Activity {

private ProgressDialog progressDialog;

    @Override

    public voidonCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.menu);

        //开始一条专门处理耗时工作的线程

        newThread(new Runnable(){

          @Override

          public void run() {

             try {

  Thread.sleep(5*1000);//假设这项工作需要5秒才能完成

  progressDialog.dismiss();//关闭进程对话框

  //runOnUiThread(finishDialog);//要求运行在UI线程

     } catch (InterruptedException e) {}

          }

       }).start();       

       progressDialog = ProgressDialog.show(ProgressDialogActivity.this, "请稍等", "数据正在加载中...", true);

  

   privateRunnable finishDialog = new Runnable() {

        @Override

        publicvoid run() {          

          progressDialog.dismiss();

        }

   };

}



0 0
原创粉丝点击