代码拉取完成,页面将自动刷新
此框架提供七种对话框的显示,并支持对话框的扩展,目的是为了提供对话框的统一管理,并提供对话框显示的公共接口。
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(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();
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();
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;
}
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;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型