/** * 清理参数 */ @Override public void onDestroyView() { super.onDestroyView(); EasyDialogListeners.destroyListeners(this); }
@Override public void onDestroyView() { super.onDestroyView(); mInputTextEt = null; }
/** * 这时dialog已经初始化完毕 */ @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); }
public void listDialog(View v) { EasyDialog.builder(this) .setItems(R.array.country, (dialog, which) -> showToast("click " + which)) .setRetainInstance(true) .setPositiveButton("yes", (dialog, which) -> showToast("yes")) .setNegativeButton("no", this) .build() .show(getSupportFragmentManager()); }
public void showDialog(String title, String message) { if (curActivity == null) { return; } EasyDialog.builder(curActivity) .setTitle(title) .setMessage(message) .setPositiveButton("ok", null) .build() .show(curActivity.getSupportFragmentManager()); } }
/** * 显示在顶部的dialog,背景透明 */ public void topDialog(View v) { TopDialog.Builder builder = EasyDialog.builder(this, TopDialog.class); builder.setTitle("标题"); builder.setPositiveButton("设置了宽高", null); builder.setNegativeButton("位置在顶部", null); builder.build().show(getSupportFragmentManager()); }
public void imageDialog(View v) { EasyDialog.builder(this, ImageDialog.class) .setPositiveButton("弹出动态设置样式的Dialog", (dialog, which) -> { }) .build() .show(getSupportFragmentManager()); }
/** * 支持多选列表的对话框 */ public void multiChoiceDialog(View v) { EasyDialog.builder(this) // 设置数据和默认选中的选项 .setMultiChoiceItems( new String[]{"Android", "ios", "wp"}, new boolean[]{true, false, true}, (dialog, which, isChecked) -> showToast("onClick pos = " + which + " , isChecked = " + isChecked)) // 设置监听器 .build() .show(getSupportFragmentManager(), TAG); }
static void restoreListenersIfActivity(EasyDialog dialog, Activity activity) { dialog.cancelListener = replaceValueByActivity(dialog.cancelListener, DialogInterface.OnCancelListener.class, activity); dialog.dismissListener = replaceValueByActivity(dialog.dismissListener, DialogInterface.OnDismissListener.class, activity); dialog.multiClickListener = replaceValueByActivity(dialog.multiClickListener, DialogInterface.OnMultiChoiceClickListener.class, activity); DialogInterface.OnClickListener[] listeners = getClickListenerArr(dialog); for (int i = 0; i < listeners.length; i++) { setListenerValue(dialog, i, replaceValueByActivity(listeners[i], DialogInterface.OnClickListener.class, activity)); } }
static void saveListenersIfActivity(EasyDialog dialog) { dialog.cancelListener = replaceActivityByValue(dialog.cancelListener, CANCEL_LISTENER); dialog.dismissListener = replaceActivityByValue(dialog.dismissListener, DISMISS_LISTENER); dialog.multiClickListener = replaceActivityByValue(dialog.multiClickListener, MULTI_CHOICE_LISTENER); DialogInterface.OnClickListener[] listeners = getClickListenerArr(dialog); for (int i = 0; i < listeners.length; i++) { setListenerValue(dialog, i, replaceActivityByValue(listeners[i], CLICK_LISTENER)); } }
@NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { if (!isBottomDialog()) { return super.onCreateDialog(savedInstanceState); } else { return new BottomSheetDialog(getContext(), getTheme()); } }
static void destroyListeners(EasyDialog dialog) { dialog.cancelListener = destroyListener(dialog.cancelListener, CANCEL_LISTENER); dialog.dismissListener = destroyListener(dialog.dismissListener, DISMISS_LISTENER); dialog.multiClickListener = destroyListener(dialog.multiClickListener, MULTI_CHOICE_LISTENER); DialogInterface.OnClickListener[] listeners = getClickListenerArr(dialog); for (int i = listeners.length - 1; i >= 0; i--) { setListenerValue(dialog, i, destroyListener(listeners[i], CLICK_LISTENER)); } }
@Override protected void bindAndSetViews(@Nullable View root) { super.bindAndSetViews(root); bindViews(root); setViews(); }
@Override public void setupDialog(Dialog dialog, int style) { super.setupDialog(dialog, style); if (isBottomDialog()) { dialog.setContentView(getLayoutResId()); } }
@Override protected void modifyAlertDialogBuilder(android.support.v7.app.AlertDialog.Builder builder) { super.modifyAlertDialogBuilder(builder); if (getLayoutResId() != 0) { builder.setView(getLayoutResId()); } }
/** * 保存参数 */ @CallSuper @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); EasyDialogListeners.saveListenersIfActivity(this); }
@Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); }
public void show(FragmentManager manager) { show(manager, DIALOG_TAG); }
public void showAllowingStateLoss(FragmentManager manager) { showAllowingStateLoss(manager, DIALOG_TAG); }