Android中的Dialog 對話框的使用

1.1    Dialog 對話框

1.1.1  提示對話框AlertDialog的使用

AlertDialog.Builder builder = AlertDialog.Budiler(Context):創建Dialog構造器

builder.setIcon():設置圖標

builder.setMessage():設置文本內容

builder.setPositiveButton():設置“確定”按鈕

builder.setNegativeButton():設置“取消”按鈕

builder.setNeutralButton():設置“中立”按鈕

                   點擊按鈕後,默認會關閉對話框

builder.setCancelable(boolean cancelable):設置是否可被取消

AlertDialog dialog = builder.create():創建對話框對象

dialog.show():顯示對話框

點擊按鈕後,默認會關閉對話框

這兩行代碼可用builder.show()來代替

提示對話框AlertDialog的使用:

 

AlertDialog的分類:

1.  普通AlertDialog

2.  帶列表的AlertDialog

3.  帶單選列表的AlertDialog

4.  帶多選列表的AlertDialog

5.  自定義列表樣式的AlertDialog

6.  完全自定義顯示內容的AlertDialog

 

 

 

1.1.2  列表對話框

列表對話框本質上還是AlertDialog

1、普通列表對話框

         builder.setItems():設置列表項

2、單選列表對話框

         builder.setSingleChoiceItems():設置單選列表項

3、多選列表對話框

         builder.setMultiChoiceItems():設置多選列表項

4、帶圖標的列表對話框

         builder.setAdapter():設置適配器(自定義每一行的佈局和內容)

 

1.1.3  進度對話框

ProgressDialog pDialog = newProgressDialog(Context) :創建進度對話框

設置進度條的樣式

         無進度顯示(默認)

         有進度顯示:pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

pDialog.show():顯示對話框

pDialog.setProgress(intprogress):設置進度

示例代碼

case R.id.btn_dialog_progress:

                            ProgressDialog dialog = new ProgressDialog(this);

                            dialog.setMessage("提示等待中.......");

                            dialog.setTitle("提示題");

                            dialog.setIcon(R.drawable.ic_launcher);

                            // 設置對話框的顯示樣式

                            dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

                            dialog.show();

                            break;

 

1.1.4  日期選擇對話框DatePickerDialog

日期設置對話框的實現與時間設置對話框的使用套路一致,唯一要注意的問題在於,關於月份上:3 代表4月

private void dataPickDialog() {

                   // 獲取設備的當前時間

                   Calendar cal = Calendar.getInstance();

                   DatePickerDialog dpcl = new DatePickerDialog(MainActivity.this,

                                     newOnDateSetListener() {

 

                                               @Override

                                               public voidonDateSet(DatePicker view, int year,

                                                                 int monthOfYear, int dayOfMonth) {

                                                        // TODO Auto-generated method stub

                                                        Toast.makeText(MainActivity.this,

                                                                           year+ "/" + (monthOfYear+1) + "/" + dayOfMonth,

                                                                           Toast.LENGTH_SHORT).show();

                                               }

                                     }, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),

                                     cal.get(Calendar.DAY_OF_MONTH));

                   dpcl.show();

         }】

 

1.1.5  時間選擇對話框TimePickerDialog

時間設置對話框的實現:

/*

             * 1. Context 環境

             * 2. 當時間確定後運行該接口中的方法

             * 34.用於設置對話框初始顯示時顯示的小時和分鐘數

             * 5. 是否是24小時制

             * */

            TimePickerDialog td = new TimePickerDialog(this, new OnTimeSetListener() {

                /*

                 * 當時間設置完成後運行的方法

                 * 參數:1.對話框中用於設置時間的控件

                 * 2. 設置後的小時

                 * 3.設置後的分鐘

                 * */

                @Override

                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

                    // TODO Auto-generated method stub

                    Toast.makeText(MainActivity.this, hourOfDay+" "+minute, Toast.LENGTH_LONG).show();

                }

            }, 11, 25, true);

            //顯示對話框

            td.show();

 

1.1.6  自定義對話框

builder.setView()

         privatevoid btn_dialog_custom() {

                   Viewview = getLayoutInflater().inflate(R.layout.custom, null);

                   final AlertDialog dia=newAlertDialog.Builder(this)

                   .setView(view)

                   .setTitle("完全自定義的對話框")

                   .show();

                   /*

                    * 自定義的對話框中顯示一個輸入框和一個按鈕

                    * 實現:當點擊按鈕的時候,關閉對話框,並且獲取輸入框中輸入的內容

                    * */

                   Buttonbut =(Button) view.findViewById(R.id.button1);

                   finalEditText et = (EditText) view.findViewById(R.id.editText1);

                   /*

                    * 由於按鈕的點擊事件與對話框中的點擊事件的名稱都叫做OnClickListener

                    * 分屬於不同的包中,而import倒包的部分不允許導入兩個結尾名稱相同的類

                    * 所以只能一個通過import導包,另一個通過上一層的路徑類進行顯示

                    * */

                   but.setOnClickListener(newView.OnClickListener() {

                           

                            @Override

                            publicvoid onClick(View v) {

                                     //TODO Auto-generated method stub

                                     Toast.makeText(MainActivity.this,et.getText().toString(), Toast.LENGTH_SHORT).show();

                                     dia.dismiss();

                            }

                   });

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