1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/i-android-android-dialog

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

android-dialog

Этот фреймворк предоставляет отображение семи типов диалоговых окон и поддерживает расширяемость диалоговых окон с целью обеспечения единого управления диалогами и предоставления общего интерфейса для отображения диалогов.

  • LoadingDialog: Диалоговое окно "Загрузка в процессе"
  • MessageDialog: Диалоговое окно сообщения, содержащее только кнопку "OK"
  • AlertDialog: Диалоговое окно подтверждения, содержащее кнопки "Подтвердить" и "Отменить"
  • ListDialog: Обычное диалоговое окно выбора, однострочного или множественного выбора
  • EditTextDialog: Диалоговое окно, содержащее поле ввода и флажок
  • ProgressDialog: Диалоговое окно прогресса, которое может показывать конкретный прогресс
  • BottomSheetDialog: Диалоговое окно, которое открывается снизу
  • Расширенное ContentViewDialog

Пример


Конфигурация Gradle

compile 'cn.yhq:android-dialog:1.6.0'

Способы использования

Существует два способа создания диалоговых окон:

1. Создание с помощью DialogBuilder без сохранения состояния

Диалоговые окна, созданные таким образом, не сохраняют свое состояние при повороте экрана или других событиях, приводящих к перезапуску активности.#### Отображение диалогового окна загрузки

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();

Скриншот_20161010_140553

Отображение BottomSheet диалогового окна
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();

Скриншот_20161021_113255

Отображение пользовательского диалогового окна
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();

Скриншот_20161010_140556

2. Использование DialogManager вместе с IDialogCreator интерфейсом для создания диалоговых окон. Диалоговые окна, созданные таким образом, сохраняют своё состояние после поворота экрана и не исчезают.```java

публичный класс 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Эта платформа предоставляет пять видов диалоговых окон и поддерживает их расширение с целью обеспечить унифицированное управление диалоговыми окнами и предоставить общий интерфейс для отображения диалоговых окон. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/i-android-android-dialog.git
git@api.gitlife.ru:oschina-mirror/i-android-android-dialog.git
oschina-mirror
i-android-android-dialog
i-android-android-dialog
master