一、對話框的分類android
<1>AlertDialog 警告對話框(提示對話框)app
(1)父類:android.app.Dialogide
(2)建立AlertDialog對話框的步驟佈局
a.建立AlertDialog.Builder對象,該對象能建立AlertDialog;ui
AlertDialog alertDialog = null; AlertDialog.Builder builder = new Builder(MainActivity.this);
b.調用Builder對象的方法設置圖標、標題、內容、按鈕等;this
builder.setTitle("警告對話框")// 設置標題 .setIcon(R.drawable.icon18)// 設置標題圖標 .setMessage("肯定要刪除嗎?")// 設置標題文本內容 .setPositiveButton("肯定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 點擊肯定按鈕要作的事 Toast.makeText(MainActivity.this, "肯定",Toast.LENGTH_SHORT).show();}) .setNegativeButton("取消", null) .setNeutralButton("其餘", null);
c.調用Builder對象的create()方法建立AlertDialog對話框.setCanceledOnTouchOutside(false):點擊對話框之外對話框不消失code
// 經過builder對象建立對話框對象 alertDialog = builder.create();
d.調用AlertDialog的show()方法來顯示對話框xml
// 顯示對話框 alertDialog.show();
<2>ProgressDialog 進度對話框對象
(1)父類:android.app.AlertDialogutf-8
(2)建立ProgressDialog對話框的步驟:
a.實例化ProgressDialog,建立出ProgressDialog對象
b.調用該對象的方法設置圖標、標題、內容、按鈕等
c.調用 ProgressDialog 對象的show()方法顯示出 ProgressDialog 對話框
<3>DatePickerDialog 日期選擇對話框
(1)父類:android.app.AlertDialog
(2)建立DatePickerDialog對話框的步驟:
a.實例化DatePickerDialog,建立出 DatePickerDialog對象
DatePickerDialog dialog = new DatePickerDialog(this,new OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { //選擇日期以後調用的方法 注意:參數monthOfYear是0~11 Toast.makeText(MainActivity.this, year+":"+(monthOfYear+1)+":"+dayOfMonth, Toast.LENGTH_SHORT).show(); } }, year, month, day);
b.調用DatePickerDialog對象的show()方法顯示出DatePickerDialog對話框
dialog.show();
c.綁定監聽器:OnDateSetListener()
Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { //選擇日期以後調用的方法 注意:參數monthOfYear是0~11 Toast.makeText(MainActivity.this, year+":"+(monthOfYear+1)+":"+dayOfMonth, Toast.LENGTH_SHORT).show(); }
<4>TimerPickerDialog 時間選擇對話框
<5>自定義對話框(登陸對話框、關於對話框)
(1)AlertDialog——自定義對話框的建立步驟:
a.建立AlertDialog.Builder對象
AlertDialog.Builder builder = new Builder(this);
b.設置對話框的標題、按鈕等(既能夠使用系統自帶的,也能夠自定義)
c.自定義佈局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="刪除" android:textSize="30sp" android:gravity="center" android:padding="10dp"/> <TextureView android:layout_width="match_parent" android:layout_height="1dp" android:background="#ccc"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="肯定要刪除嗎?" android:gravity="center" android:padding="15dp" android:textSize="20sp"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"> <Button android:id="@+id/btnSure" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="肯定" /> <Button android:id="@+id/btnClean" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="取消" /> </LinearLayout> </LinearLayout>
d.使用LayoutInflater 的 inflater()方法填充自定義的佈局文件,返回view對象。用該對象的findViewById()方法加載自定義佈局上全部控件;
// 獲取佈局對象的兩種方法 View view2 = LayoutInflater.from(this).inflate(R.layout.dialog_layout,null); // view2=getLayoutInflater().inflate(R.layout.dialog_layout, null);
e.調用Builder對象的setView()方法加載view對象;
builder.setView(view2);// 設置對話框要顯示的佈局 Button btnSure = (Button) view2.findViewById(R.id.btnSure);
f.調用Builder對象的create()方法建立AlertDialog對話框;
customDialog = builder.create();
g.調用AlertDialog的show()方法來顯示對話框
customDialog.show();
<6>列表對話框
(1)普通列表對話框
(2)單選列表對話框
(3)多選列表對話框
(4)帶圖標的列表對話框