Awesome
<p align="center" > <picture> <source media="(prefers-color-scheme: dark)" srcset="media/logo_named_right_darkmode.png"> <source media="(prefers-color-scheme: light)" srcset="media/logo_named_right.png"> <img width="50%" src="media/logo_named_right.png"> </picture> </p>SimpleDialogFragments
<img width="40%" align="right" src="https://github.com/eltos/SimpleDialogFragments/raw/main/media/screenshot.png"/>SimpleDialogFragments Library is a collection of easy to use and extendable DialogFragment's for Android. It is fully compatible with rotation changes and can be implemented with only a few lines of code.
A new approach of result handling ensures data integrity over rotation changes, that many other libraries lack.
đ§âđģ API | âšī¸ Wiki | đ Releases |
---|
đŧī¸ Screenshots | đą Demo | đĒ Donate |
---|
Features
- Common dialogs that can be used with few lines of code
- Alert dialogs
- Input and checkbox dialogs with suggestions and validations
- Filterable single- / multi-choice dialogs
- Color pickers (palettes and/or HSV)
- Extensive forms
- Date and time pickers
- Pin code dialog
- Progress dialogs
- Easy result handling even after rotation changes
- Persistence on rotation changes
- Material design
- Fullscreen dialogs
- Customizable and extendable dialogs
Usage
Check the release page for the latest and older versions:
In your module level build.gradle
when using mavenCentral:
dependencies {
implementation 'io.github.eltos:simpledialogfragments:3.8.3'
}
or if using JitPack:
dependencies {
implementation 'com.github.eltos:simpledialogfragments:v3.8.3'
}
Building dialogs
Building dialogs is very easy and short handed:
SimpleDialog.build()
.title(R.string.hello)
.msg(R.string.hello_world)
.show(this);
Check the wiki pages for instructions and examples on how to build the different dialogs available.
Receive Results
Supply a tag when showing the dialog and let the hosting Activity or Fragment implement the SimpleDialog.OnDialogResultListener
.
For details, please refere to the wiki pages.
@Override
public boolean onResult(@NonNull String dialogTag, int which, @NonNull Bundle extras) {
if (YES_NO_DIALOG.equals(dialogTag) && which == BUTTON_POSITIVE){
// ...
return true;
}
if (LIST_DIALOG.equals(dialogTag) && which == BUTTON_POSITIVE){
ArrayList<Integer> pos = extras.getIntegerArrayList(SimpleListDialog.SELECTED_POSITIONS);
// ...
return true;
}
if (REGISTRATION_DIALOG.equals(dialogTag) && which == BUTTON_POSITIVE){
String username = extras.getString(USERNAME);
String password = extras.getString(PASSWORD);
// ...
return true;
}
// ...
return false;
}
Extensions
Known extensions and projects using this library:
- File/Folder picker (see #30)
License
Copyright 2017-2022 Philipp Niedermayer (github.com/eltos)
Licensed under the Apache License 2.0
You may only use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software in compliance with the License. For more information visit http://www.apache.org/licenses/LICENSE-2.0
The above copyright notice alongside a copy of the Apache License shall be included in all copies or substantial portions of the Software not only in source code but also in a license listing accessible by the user.