淘寶做的網(wǎng)站會不會過期十大最免費軟件排行榜
Dialog分類
AlertDialog
Dialog 類是對話框的基類,官方建議我們不要直接實例化它,而是使用其子類來獲取實例。AlertDialog是系統(tǒng)提供的一個直接子類,它能幫助我們快速構建出不同類型的彈窗。接下來就看下各種類型彈窗的使用。
1、普通對話框
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this).setIcon(R.drawable.ic_launcher_background).setTitle("普通對話框的標題").setMessage("我是內容").setPositiveButton("確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "點擊了確定", Toast.LENGTH_SHORT).show();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "點擊了取消", Toast.LENGTH_SHORT).show();}})//Neutral按鈕,顯示在dialog的最左面。.setNeutralButton("不確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "點擊了不確定", Toast.LENGTH_SHORT).show();}});AlertDialog dialog = builder.create();dialog.show();
2、列表對話框
String[] itemArray = {"第一個", "第二個", "第三個", "第四個", "第五個"};AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this).setIcon(R.drawable.ic_launcher_background).setTitle("列表對話框的標題").setItems(itemArray, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "點擊了" + itemArray[which], Toast.LENGTH_SHORT).show();}});AlertDialog dialog = builder.create();dialog.show();
3、單選對話框
String[] itemArray = {"第一個", "第二個", "第三個", "第四個", "第五個"};AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this).setIcon(R.drawable.ic_launcher_background).setTitle("單選對話框的標題").setSingleChoiceItems(itemArray, 0, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}}).setPositiveButton("確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "點擊了確定", Toast.LENGTH_SHORT).show();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "點擊了取消", Toast.LENGTH_SHORT).show();}});AlertDialog dialog = builder.create();dialog.show();
4、多選對話框
String[] itemArray = {"第一個", "第二個", "第三個", "第四個", "第五個"};AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this).setIcon(R.drawable.ic_launcher_background).setTitle("多選對話框的標題").setMultiChoiceItems(itemArray, null, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {}}).setPositiveButton("確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "點擊了確定", Toast.LENGTH_SHORT).show();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "點擊了取消", Toast.LENGTH_SHORT).show();}});AlertDialog dialog = builder.create();dialog.show();
5、多選對話框
View customView = LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog_custom_view_1, null);AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this).setIcon(R.drawable.ic_launcher_background).setTitle("自定義對話框的標題").setView(customView).setPositiveButton("確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "點擊了確定", Toast.LENGTH_SHORT).show();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "點擊了取消", Toast.LENGTH_SHORT).show();}});AlertDialog dialog = builder.create();dialog.show();
6、DatePickerDialog,日期選擇對話框
默認顯示
DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this,new DatePickerDialog.OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {Toast.makeText(MainActivity.this, year + "-" + month + "-" + dayOfMonth, Toast.LENGTH_SHORT).show();}}, 2024, 5, 4);datePickerDialog.show();
修改對話框themeStyle為:AlertDialog.THEME_HOLO_LIGHT,效果如下:
DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this,AlertDialog.THEME_HOLO_LIGHT,new DatePickerDialog.OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {Toast.makeText(MainActivity.this,year + "-" + month + "-" + dayOfMonth, Toast.LENGTH_SHORT).show();}}, 2024, 5, 4);datePickerDialog.show();
7、TimePickerDialog,時間選擇對話框
默認顯示
TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {Toast.makeText(MainActivity.this, hourOfDay + ":" + minute, Toast.LENGTH_SHORT).show();}}, 9, 36, true);timePickerDialog.show();
修改對話框themeStyle為:AlertDialog.THEME_HOLO_LIGHT,效果如下:
TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, AlertDialog.THEME_HOLO_LIGHT, new TimePickerDialog.OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {Toast.makeText(MainActivity.this, hourOfDay + ":" + minute, Toast.LENGTH_SHORT).show();}}, 9, 36, true);timePickerDialog.show();
8、ProgressDialog
官方已棄用,建議使用ProgressBar代替,自定義Dialog加載對話框。
Android 包含另一個名為 ProgressDialog 的對話框類,該類可顯示帶有進度條的對話框。此 widget 已廢棄,因為它會在顯示進度時阻止用戶與應用互動。如果您需要指示加載進度或不確定的進度,請遵循進度和 Activity 中的設計準則,并在布局中使用 ProgressBar,而不是 ProgressDialog。
9、DialogFragment
DialogFragment是繼承Fragment的,擁有和Fragment一樣的生命周期。在使用時,更容易通過生命周期回調來管理彈窗。對于復雜樣式的彈窗,使用DialogFragment更加方便和高效。
注:Dialog官方介紹文檔