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. 當時間確定後運行該接口中的方法
* 3,4.用於設置對話框初始顯示時顯示的小時和分鐘數
* 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();
}
});
】