android中的 AlertDialog的个人见解

来源:互联网 发布:linux培训上海 编辑:程序博客网 时间:2024/06/05 11:56

          工作一年有余,自认能力还是不够,所以准备整理一下笔记,与君共勉!

     这是我看API文档后的第一次笔记,或许写的不够完善,或许写的不够正确,望各位提出指导和批评,谢谢!
     本文主要说明简单受用的提示对话框---Dialog.
     android API 

Android API 支持以下类型的对话框:

AlertDialog,ProgressDialog,DatePickerDialog,TimePickerDialog.和自定义的对话框。

1,AlertDialog 

AlertDialog一般是两个按钮positivenative,最多不超过三个即positivenativeneutral

现列举几个经常用到的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),类似checkboxsAlertDialog.实例入下:

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)方法来实现类似CheckBoxAlertDialog
第一个参数是要显示的数据的数组,第二个参数是选中状态的数组,第三个参数是点击某个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();

0 0
原创粉丝点击