1a7e35a2d64753c16cfd5b40744b0dd7637b9458.svn-base 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package com.hjq.dialog;
  2. import android.content.Context;
  3. import android.support.v4.app.FragmentActivity;
  4. import android.util.DisplayMetrics;
  5. import android.view.Gravity;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.view.WindowManager;
  9. import android.widget.LinearLayout;
  10. import android.widget.TextView;
  11. import com.hjq.base.BaseDialog;
  12. import com.hjq.base.BaseDialogFragment;
  13. import com.hjq.dialog.widget.LoopView;
  14. /**
  15. * desc : 滚动选择列表基类
  16. */
  17. public class AbsLooperDialog {
  18. public static abstract class Builder<B extends Builder>
  19. extends BaseDialogFragment.Builder<B>
  20. implements View.OnClickListener {
  21. private TextView mCancelView;
  22. private TextView mTitleView;
  23. private TextView mConfirmView;
  24. private LinearLayout mLinearLayout;
  25. public Builder(FragmentActivity activity) {
  26. super(activity);
  27. setContentView(R.layout.dialog_wheel);
  28. setAnimStyle(BaseDialog.AnimStyle.BOTTOM);
  29. setGravity(Gravity.BOTTOM);
  30. DisplayMetrics displayMetrics = new DisplayMetrics();
  31. ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getMetrics(displayMetrics);
  32. setWidth(MATCH_PARENT);
  33. setHeight(WRAP_CONTENT);
  34. mCancelView = findViewById(R.id.tv_dialog_wheel_cancel);
  35. mTitleView = findViewById(R.id.tv_dialog_wheel_title);
  36. mConfirmView = findViewById(R.id.tv_dialog_wheel_confirm);
  37. mLinearLayout = findViewById(R.id.ll_dialog_wheel_list);
  38. mCancelView.setOnClickListener(this);
  39. mConfirmView.setOnClickListener(this);
  40. }
  41. public B setTitle(int resId) {
  42. return setTitle(getContext().getResources().getText(resId));
  43. }
  44. public B setTitle(CharSequence text) {
  45. mTitleView.setText(text);
  46. return (B) this;
  47. }
  48. public B setCancel(int resId) {
  49. return setCancel(getText(resId));
  50. }
  51. public B setCancel(CharSequence text) {
  52. mCancelView.setText(text);
  53. return (B) this;
  54. }
  55. public B setConfirm(int resId) {
  56. return setConfirm(getText(resId));
  57. }
  58. public B setConfirm(CharSequence text) {
  59. mConfirmView.setText(text);
  60. return (B) this;
  61. }
  62. @Override
  63. public void onClick(View v) {
  64. if (v == mCancelView) {
  65. onCancel();
  66. }else if (v == mConfirmView) {
  67. onConfirm();
  68. }
  69. }
  70. protected abstract void onConfirm();
  71. protected abstract void onCancel();
  72. protected LoopView createLoopView() {
  73. LoopView loopView = new LoopView(getContext());
  74. loopView.setTextSize(20);
  75. LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT);
  76. layoutParams.weight = 1;
  77. loopView.setLayoutParams(layoutParams);
  78. mLinearLayout.addView(loopView);
  79. return loopView;
  80. }
  81. }
  82. }