Этот фреймворк предоставляет отображение семи типов диалоговых окон и поддерживает расширяемость диалоговых окон с целью обеспечения единого управления диалогами и предоставления общего интерфейса для отображения диалогов.
compile 'cn.yhq:android-dialog:1.6.0'
Существует два способа создания диалоговых окон:
Диалоговые окна, созданные таким образом, не сохраняют свое состояние при повороте экрана или других событиях, приводящих к перезапуску активности.#### Отображение диалогового окна загрузки
DialogBuilder.loadingDialog(this).show();
Необходимо установить ProgressHandler для активной передачи данных о прогрессе:
DialogBuilder.ProgressHandler progressHandler = new DialogBuilder.ProgressHandler();
DialogBuilder.progressDialog(MainActivity.this).progressHandler(progressHandler).show();
// Обновление прогресса
progressHandler.setProgress(progress);
DialogBuilder.messageDialog(MainActivity.this).setMessage("Информационное диалоговое окно").show();
DialogBuilder.alertDialog(MainActivity.this).setMessage(args.getString("message"))
.setOnPositiveButtonClickListener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "Кнопка подтверждения нажата", Toast.LENGTH_LONG).show();
}
}).create();
#### Отображение простого диалогового окна выбора
DialogBuilder.listDialog(this).setChoiceItems(list)
.setChoiceType(DialogBuilder.TYPE_CHOICE_NORMAL)
.setOnChoiceListener(new DialogBuilder.OnChoiceListener() {
// Метод обратного вызова после закрытия диалогового окна, возвращает выбранный элемент
@Override
public void onChoiceItem(Object item) {
Toast.makeText(MainActivity.this, "Выбрано: " + item, Toast.LENGTH_LONG).show();
}
})
.setOnChoiceClickListener(new DialogInterface.OnClickListener() {
// Метод обратного вызова при нажатии на элемент
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "Нажата кнопка с номером " + (which + 1),
Toast.LENGTH_LONG).show();
}
})
.show();
##### Отображение одиночного диалогового окна```java
DialogBuilder.listDialog(MainActivity.this).setChoiceItems(list)
.setChoiceType(DialogBuilder.TYPE_CHOICE_SINGLE)
.setOnChoiceListener(new DialogBuilder.OnChoiceListener() {
// Callback method after the dialog window closes, returns the selected item
@Override
public void onChoiceItem(Object item) {
Toast.makeText(MainActivity.this, "Выбрано: " + item, Toast.LENGTH_LONG).show();
}
})
.setOnChoiceClickListener(new DialogInterface.OnClickListener() {
// Callback method when an element is selected, returns the selected element
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "Нажата кнопка с номером " + (which + 1),
Toast.LENGTH_LONG).show();
}
})
.setOnPositiveButtonClickListener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "Нажата кнопка ОК", Toast.LENGTH_LONG).show();
}
})
.show();
``````md
.show();
// Уже выбранные элементы
int[] checkedItems = {1, 3, 4};
DialogBuilder.listDialog(MainActivity.this)
.setChoiceType(DialogBuilder.TYPE_CHOICE_MULTI)
.setChoiceItems(list)
.setCheckedItems(checkedItems)
.setOnPositiveButtonClickListener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "Нажата кнопка ОК", Toast.LENGTH_LONG).show();
}
})
.setOnMultiChoiceClickListener(new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
Toast.makeText(MainActivity.this, "Элемент " + which + " выбран",
Toast.LENGTH_SHORT).show();
}
})
.show();
``````java
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
Toast.makeText(MainActivity.this,
(isChecked ? "Выбрано" : "Отменено") + " элемент №" + (which + 1),
Toast.LENGTH_LONG).show();
}
})
.setOnMultiChoiceListener(new DialogBuilder.OnMultiChoiceListener() {
@Override
public void onMultiChoiceItems(Object[] items) {
Toast.makeText(MainActivity.this, "Итоговый выбор: " + Arrays.toString(items),
Toast.LENGTH_LONG).show();
}
})
.show();
DialogBuilder.editTextDialog(MainActivity.this)
.setOnEditTextDialogListener(new DialogBuilder.OnEditTextDialogListener() {
@Override
public void onEditTextCreated(EditText editText, CheckBox checkbox) {
editText.setHint("Введите текстовое содержание");
checkbox.setVisibility(View.VISIBLE);
checkbox.setText("текст чекбокса");
}
});
```Примечание: Исходный текст был в Java, но поскольку это markdown, я сохранил структуру и синтаксис кода без изменения имени функций, переменных и других элементов кода.
```java
@Override
public boolean onEditTextSelected(EditText editText, String text,
CheckBox checkBox, boolean checked) {
Toast.makeText(MainActivity.this, editText.getText().toString(),
Toast.LENGTH_LONG).show();
return false;
}
}).show();
View sheetView = View.inflate(MainActivity.this, android.R.layout.simple_list_item_1, null);
TextView sheetViewTextView = (TextView) sheetView.findViewById(android.R.id.text1);
sheetViewTextView.setText("BottomSheet представление");
DialogBuilder.bottomSheetDialog(MainActivity.this).setContentView(sheetView).show();
View customView = View.inflate(MainActivity.this, android.R.layout.simple_list_item_1, null);
TextView textView = (TextView) customView.findViewById(android.R.id.text1);
textView.setText("Пользовательское представление");
DialogBuilder.otherDialog(MainActivity.this).setContentView(customView).show();
публичный класс BaseActivity расширяет AppCompatActivity и реализует IDialogCreator { приватный DialogManager dialogManager;
@Переопределение защищённый void onCreate(Bundle savedInstanceState) { супер().onCreate(savedInstanceState); dialogManager = новый DialogManager(этот()); }
@Переопределение публичный IDialog создатьДиалог(int id, Bundle args) { переключатель (id) { случай 1: // Здесь возвращается обычное диалоговое окно вернуть DialogBuilder.alertDialog(этот()).setMessage(args.getString("сообщение")) .setOnPositiveButtonClickListener(новый DialogInterface.OnClickListener() { @Переопределение публичный void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.этот(), "Вы нажали кнопку 'Подтвердить'", Toast.LENGTH_LONG).show(); } }).create(); } вернуть null; } }
#### 3\. При использовании второго способа вы можете реализовать интерфейс `IDialogCreator` в базовом классе Activity и предоставить методы упаковки `DialogManager`. Таким образом, переопределяя методы интерфейса `IDialogCreator` в ваших подклассах Activity, вы сможете вызывать метод `showDialogFragment`, чтобы отобразить диалоговое окно. Для более подробной информации обратитесь к примерам в `BaseActivity` и `BaseFragment`. public void showDialogFragment(int id) {
dialogManager.showDialog(id);
}
public void showDialogFragment(int id, Bundle bundle) {
dialogManager.showDialog(id, bundle);
}
@Override
public IDialog createDialog(int id, Bundle args) {
return null;
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )