• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

android-dialog: 此框架提供五种对话框的显示,并支持对话框的扩展,目的是为了提供对 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

android-dialog

开源软件地址:

https://gitee.com/i-android/android-dialog

开源软件介绍:

android-dialog

此框架提供七种对话框的显示,并支持对话框的扩展,目的是为了提供对话框的统一管理,并提供对话框显示的公共接口。

  • LoadingDialog:正在加载对话框
  • MessageDialog:消息对话框,只有确定按钮
  • AlertDialog:确认对话框,有确认和取消按钮
  • ListDialog:普通选择、单选或者多选对话框
  • EditTextDialog:有一个editText和checkbox的对话框
  • ProgressDialog:一个可以显示具体进度的对话框
  • BottomSheetDialog:一个在底部弹出的对话框
  • 支持扩展的ContentViewDialog

gradle配置方式

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

使用方法

创建对话框的方式有两种:

1、使用DialogBuilder直接创建,这种方式创建的对话框不会保存状态,即当屏幕旋转等导致的activity重建,对话框会消失。

显示一个正在加载的对话框
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(MainActivity.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();

显示一个单选对话框
 DialogBuilder.listDialog(MainActivity.this).setChoiceItems(list)                .setChoiceType(DialogBuilder.TYPE_CHOICE_SINGLE)                .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();                  }                }).setOnPositiveButtonClickListener(new DialogInterface.OnClickListener() {                  @Override                  public void onClick(DialogInterface dialog, int which) {                    Toast.makeText(MainActivity.this, "点击了确定按钮", Toast.LENGTH_LONG).show();                  }                }).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,                        (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("checkbox文本");                  }                  @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();

显示一个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("自定义视图");  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();

2、使用DialogManager,配合IDialogCreator接口创建的对话框,这种方式创建的对话框会保存状态,在屏幕旋转后对话框不会消失。

DialogManager dialogManager = new DialogManager(this);Bundle args = new Bundle();args.putString("message", "确认对话框");dialogManager.showDialog(1, args);
  @Override  public IDialog createDialog(int id, Bundle args) {    switch (id) {      case 1:	    // 这里返回的就是按照普通方式创建的对话框        return DialogBuilder.alertDialog(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();    }    return null;  }

3、当使用第二种方式的时候,你可以在你的Activity基类里面实现IDialogCreator接口,并提供DialogManager的封装方法,这样在你的Activity子类里面重写IDialogCreator接口方法后,直接调用显示对话框的方法showDialogFragment就可以直接显示对话框了。具体可以参考BaseActivity与BaseFragment。

public class BaseActivity extends AppCompatActivity implements IDialogCreator {  private DialogManager dialogManager;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    dialogManager = new DialogManager(this);  }  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人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap