Android實例] Dialog的十種類型彙總


轉自http://www.eoeandroid.com/thread-908675-1-1.html?_dsign=16cd625b

第一種 普通對話框


  1. AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
  2.                         builder.setTitle("普通對話框");//標題
  3.                         builder.setMessage("這是一個普通的對話框");//信息
  4.                         builder.setIcon(R.drawable.ic_launcher);//圖標
  5.                         builder.create();//創建
  6.                         builder.show();//顯示                        
複製代碼
第二種 確定取消對話框

  1. AlertDialog.Builder builder2=new AlertDialog.Builder(MainActivity.this);
  2.                         builder2.setTitle("確定取消對話框");
  3.                         builder2.setMessage("請選擇確定或取消");
  4.                         builder2.setIcon(R.drawable.ic_launcher);
  5.                         builder2.setPositiveButton("確定", new OnClickListener() {
  6.                                 //正能量按鈕 Positive
  7.                                 @Override
  8.                                 public void onClick(DialogInterface dialog, int which) {
  9.                                         //這裏寫點擊按鈕後的邏輯代碼
  10.                                         Toast.makeText(MainActivity.this, "你點擊了確定", 0).show();
  11.                                 }
  12.                         });
  13.                         builder2.setNegativeButton("取消", new OnClickListener() {
  14.                                 //負能量按鈕 NegativeButton
  15.                                 @Override
  16.                                 public void onClick(DialogInterface dialog, int which) {
  17.                                         Toast.makeText(MainActivity.this,"你選擇了取消",0).show();
  18.                                 }
  19.                         });
  20.                         builder2.create().show();
複製代碼
第三種 多按鈕對話框

  1. AlertDialog.Builder builder3=new AlertDialog.Builder(MainActivity.this);
  2.                         builder3.setTitle("多個按鈕對話框");
  3.                         builder3.setMessage("請選擇");
  4.                         builder3.setIcon(R.drawable.ic_launcher);
  5.                         builder3.setPositiveButton("繼續瀏覽", new OnClickListener() {
  6.                                 
  7.                                 @Override
  8.                                 public void onClick(DialogInterface dialog, int which) {
  9.                                         Toast.makeText(MainActivity.this,"繼續瀏覽精彩內容",0).show();
  10.                                 }
  11.                         });
  12.                         builder3.setNeutralButton("暫停休息", new OnClickListener() {
  13.                                 
  14.                                 @Override
  15.                                 public void onClick(DialogInterface dialog, int which) {
  16.                                         Toast.makeText(MainActivity.this,"起來活動活動吧", 0).show();
  17.                                 }
  18.                         });
  19.                         builder3.setNegativeButton("離開頁面", new OnClickListener() {
  20.                                 
  21.                                 @Override
  22.                                 public void onClick(DialogInterface dialog, int which) {
  23.                                         Toast.makeText(MainActivity.this,"歡迎下次使用", 0).show();
  24.                                 }
  25.                         });
  26.                         builder3.create().show();
複製代碼
第四種 列表對話框

先在string.xml
中添加以下代碼
  1. <string-array
  2.         name="oem">
  3.         <item >小米</item>
  4.         <item >榮耀</item>
  5.         <item >魅族</item>
  6.         <item >樂視</item>
  7.         <item >奇酷</item>
  8.         <item >錘子</item>
  9.     </string-array>
複製代碼
然後添加邏輯代碼
  1. final String arrItem[]=getResources().getStringArray(R.array.oem);
  2.                         builder4.setItems(arrItem, new OnClickListener() {
  3.                                 
  4.                                 @Override
  5.                                 public void onClick(DialogInterface dialog, int which) {
  6.                                         Toast.makeText(MainActivity.this,"你選擇了第"+arrItem[which],0).show();
  7.                                 }
  8.                         });
  9.                         builder4.create().show();
複製代碼
第五種 帶Adapter的對話框

  1. AlertDialog.Builder builder5=new AlertDialog.Builder(MainActivity.this);
  2.                         builder5.setTitle("帶Adapter的對話框");
  3.                         builder5.setIcon(R.drawable.ic_launcher);
  4.                         //獲取數據源
  5.                         //創建一個List對象並實例化
  6.                         final List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
  7.                         //圖片
  8.                         int arrImgID[]={R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,
  9.                                         R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher};
  10.                         for (int i = 0; i < arrImgID.length; i++) {
  11.                                 Map<String,Object> map=new HashMap<String,Object>();
  12.                                 map.put("img", arrImgID[i]);
  13.                                 map.put("title", "title"+i);
  14.                                 list.add(map);
  15.                         }
  16.                         //創建Adapter對象並實例化
  17.                         SimpleAdapter adapter=new SimpleAdapter(
  18.                                         MainActivity.this,
  19.                                         list,
  20.                                         R.layout.layout_test1,
  21.                                         new String[]{"img","title"},
  22.                                         new int[]{R.id.iv,R.id.tv});
  23.                         //將數據填充到Adapter
  24.                         builder5.setAdapter(adapter, new OnClickListener() {
  25.                                 
  26.                                 @Override
  27.                                 public void onClick(DialogInterface dialog, int which) {
  28.                                         Toast.makeText(MainActivity.this, "你選擇了"+list.get(which).get("title").toString().trim(), 0).show();
  29.                                 }
  30.                         });
  31.                         builder5.create().show();
複製代碼
第六種 單選對話框

  1. AlertDialog.Builder builder6=new AlertDialog.Builder(MainActivity.this);
  2.                         builder6.setTitle("單選對話框");
  3.                         builder6.setIcon(R.drawable.ic_launcher);
  4.                         //參數1  item數據源       參數2   默認選中的item  參數3 item點擊監聽
  5.                         builder6.setSingleChoiceItems(R.array.oem, 0, new OnClickListener() {
  6.                                 
  7.                                 @Override
  8.                                 public void onClick(DialogInterface dialog, int which) {
  9.                                         Toast.makeText(MainActivity.this, which+"", 0).show();
  10.                                 }
  11.                         });
  12.                         //設置按鈕
  13.                         builder6.setPositiveButton("確定", new OnClickListener() {
  14.                                 
  15.                                 @Override
  16.                                 public void onClick(DialogInterface dialog, int which) {
  17.                                        
  18.                                 }
  19.                         });
  20.                         builder6.create().show();
複製代碼
第七種 多選對話框

  1. AlertDialog.Builder builder7=new AlertDialog.Builder(MainActivity.this);
  2.                         builder7.setTitle("多選對話框");
  3.                         builder7.setIcon(R.drawable.ic_launcher);
  4.                         builder7.setMultiChoiceItems(R.array.oem, null, new OnMultiChoiceClickListener() {
  5.                                 
  6.                                 @Override
  7.                                 public void onClick(DialogInterface dialog, int which, boolean isChecked) {
  8.                                         Toast.makeText(MainActivity.this, which+""+isChecked, 0).show();
  9.                                 }
  10.                         });
  11.                         builder7.create().show();
複製代碼
第八種 日期對話框

  1. //創建DatePickerDialog對象並實例化
  2.                         //國內外日期計算不同    注意此處輸出月份需+1   默認設置月份需-1
  3.                         DatePickerDialog datePickerDialog=new DatePickerDialog(MainActivity.this,
  4.                                         new OnDateSetListener() {
  5.                                                 
  6.                                                 @Override
  7.                                                 public void onDateSet(DatePicker view, int year, int monthOfYear,
  8.                                                                 int dayOfMonth) {
  9.                                                         Toast.makeText(MainActivity.this,
  10.                                                                         year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日", 0).show();
  11.                                                 }
  12.                                         },
  13.                                         2015, 8, 21);
  14.                         //Date和Time只用show()  不用create()
  15.                         datePickerDialog.show();
複製代碼
第九種 時間對話框

  1. TimePickerDialog timePickerDialog=new TimePickerDialog(MainActivity.this,
  2.                                         new OnTimeSetListener() {
  3.                                                 
  4.                                                 @Override
  5.                                                 public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
  6.                                                         Toast.makeText(MainActivity.this,
  7.                                                                         hourOfDay+"點"+minute+"分", 0).show();
  8.                                                 }
  9.                                         },
  10.                                         17, 49, true);
  11.                         timePickerDialog.show();
複製代碼
第十種 自定義對話框

  1. AlertDialog.Builder builder10=new AlertDialog.Builder(MainActivity.this);
  2.                         builder10.setTitle("自定義對話框");
  3.                         builder10.setIcon(R.drawable.ic_launcher);
  4.                         //獲取自定義對話框View
  5.                         View view=LayoutInflater.from(MainActivity.this).inflate(R.layout.layout_test2, null);
  6.                         //獲取控件
  7.                         final EditText et_name=(EditText)view.findViewById(R.id.et_name);
  8.                         final EditText et_pwd=(EditText)view.findViewById(R.id.et_pwd);
  9.                         //設置按鈕
  10.                         builder10.setPositiveButton("確定", new OnClickListener() {
  11.                                 
  12.                                 @Override
  13.                                 public void onClick(DialogInterface dialog, int which) {
  14.                                         Toast.makeText(MainActivity.this, "您的信息爲 姓名:"+et_name.getText().toString()+" 密碼:"+et_pwd.getText().toString(), 0).show();
  15.                                 }
  16.                         });
  17.                         //加載自定義佈局
  18.                         builder10.setView(view).create().show();
複製代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章