不断学习,做更好的自己!💪
视频号CSDN简书欢迎打开微信,关注我的视频号:KevinDev点我点我 简介qmui 提供了一系列常用的对话框,解决了使用系统默认对话框时在不同 Android 版本上的表现不一致的问题。使用不同的 Builder 来构建不同类型的对话框,这些 Builder 都拥有设置 title 和添加底部按钮的功能,不同的 Builder 特有的作用如下: MessageDialogBuilder: 消息类型的对话框 Builder。通过它可以生成一个带标题、文本消息、按钮的对话框。 ConfirmMessageDialogBuilder: 带 Checkbox 的消息确认框 Builder。 EditTextDialogBuilder: 带输入框的对话框 Builder。 MenuDialogBuilder: 菜单对话框 Builder。 CheckableDialogBuilder: 单选类型的对话框 Builder。 MultiCheckableDialogBuilder: 多选类型的对话框 Builder。 CustomDialogBuilder: 自定义对话框内容区域的 Builder。 AutoResizeDialogBuilder: 随键盘升降自动调整 Dialog 高度的 Builder。
开始使用qmui
-
引入库 请确保配置了 JCenter 仓库源,然后直接引用: implementation
"com.qmuiteam:qmui:2.0.0-alpha10"
至此,QMUI 已被引入项目中。 -
配置主题 把项目的 theme 的 parent 指向 QMUI.Compat,至此,QMUI 可以正常工作。
public class DialogActivity extends BaseActivity {
@BindView(R.id.topbar)
QMUITopBar mTopBar;
@BindView(R.id.rv_dialog)
RecyclerView mRecyclerView;
private DialogAdapter mAdapter;
@Override
protected int getLayoutId() {
return R.layout.activity_dialog;
}
@Override
protected void initView() {
mTopBar.setTitle("对话框");
mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
initData();
LinearLayoutManager manager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(manager);
mRecyclerView.addItemDecoration(new MyItemDecoration());
mRecyclerView.setAdapter(mAdapter);
mAdapter.setOnItemChildClickListener(new OnItemChildClickListener() {
@Override
public void onItemChildClick(@NonNull BaseQuickAdapter adapter, @NonNull View view, int position) {
switch (position) {
case 0:
showMsgDialog("这是标题","确定要删除该项吗?");
break;
case 1:
showMenuDialog();
break;
case 2:
showCheckboxDialog();
break;
case 3:
showSingleDialog();
break;
case 4:
showMultiDialog();
break;
case 5:
showInputDialog();
break;
case 6:
showAutoDialog();
break;
default:
break;
}
}
});
}
private void showAutoDialog() {
AutoKeyboardDialogBuilder builder = new AutoKeyboardDialogBuilder(this);
builder.addAction(R.string.cancel, new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
dialog.dismiss();
}
})
.addAction(R.string.ok, new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
dialog.dismiss();
}
});
builder.show();
QMUIKeyboardHelper.showKeyboard(builder.getEditText(),true);
}
private void showInputDialog() {
final QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(this);
builder.setTitle("修改手机号")
.setPlaceholder("请输入您的手机号")
.setInputType(InputType.TYPE_CLASS_PHONE)
.addAction(R.string.cancel, new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
dialog.dismiss();
}
})
.addAction(R.string.ok, new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
CharSequence text = builder.getEditText().getText();
if (text != null && text.length() > 0) {
Toast.makeText(DialogActivity.this, "您的手机号: " + text, Toast.LENGTH_SHORT).show();
dialog.dismiss();
} else {
Toast.makeText(DialogActivity.this, "请填入手机号", Toast.LENGTH_SHORT).show();
}
}
})
.show();
}
private void showMultiDialog() {
final String[] items = new String[]{"阅读", "听歌", "篮球", "足球", "台球", "电影"};
final QMUIDialog.MultiCheckableDialogBuilder builder = new QMUIDialog.MultiCheckableDialogBuilder(this)
.setTitle("你的兴趣爱好是什么?")
.setCheckedItems(new int[]{1, 3})
.addItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.addAction("取消", new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
dialog.dismiss();
}
});
builder.addAction("提交", new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
String result = "你选择了 ";
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?