dhohoney

OptionDialogFragment.jablay

Mar 31st, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. package com.dicoding.myflexiblefragment;
  2.  
  3. import android.content.Context;
  4. import android.os.Bundle;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.Button;
  9. import android.widget.RadioButton;
  10. import android.widget.RadioGroup;
  11.  
  12. import androidx.annotation.NonNull;
  13. import androidx.annotation.Nullable;
  14. import androidx.fragment.app.DialogFragment;
  15. import androidx.fragment.app.Fragment;
  16.  
  17. public class OptionDialogFragment extends DialogFragment implements View.OnClickListener {
  18.  
  19. private Button btnChoose, btnClose;
  20. private RadioGroup rgOptions;
  21. private RadioButton rbSaf, rbMou, rbLvg, rbMoyes;
  22. private OnOptionDialogListener optionDialogListener;
  23.  
  24. public OptionDialogFragment() {
  25. // Required empty public constructor
  26. }
  27.  
  28. @Override
  29. public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
  30. Bundle savedInstanceState) {
  31. return inflater.inflate(R.layout.fragment_option_dialog, container, false);
  32. }
  33.  
  34. @Override
  35. public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
  36. super.onViewCreated(view, savedInstanceState);
  37. btnChoose = view.findViewById(R.id.btn_choose);
  38. btnChoose.setOnClickListener(this);
  39. btnClose = view.findViewById(R.id.btn_close);
  40. btnClose.setOnClickListener(this);
  41. rgOptions = view.findViewById(R.id.rg_options);
  42. rbSaf = view.findViewById(R.id.rb_saf);
  43. rbLvg = view.findViewById(R.id.rb_lvg);
  44. rbMou = view.findViewById(R.id.rb_mou);
  45. rbMoyes = view.findViewById(R.id.rb_moyes);
  46. }
  47.  
  48. @Override
  49. public void onAttach(Context context) {
  50. super.onAttach(context);
  51.  
  52. /*
  53. Saat attach maka set optionDialogListener dengan listener dari detailCategoryFragment
  54. */
  55. Fragment fragment = getParentFragment();
  56.  
  57. if (fragment instanceof DetailCategoryFragment) {
  58. DetailCategoryFragment detailCategoryFragment = (DetailCategoryFragment) fragment;
  59. this.optionDialogListener = detailCategoryFragment.optionDialogListener;
  60. }
  61. }
  62.  
  63. @Override
  64. public void onDetach() {
  65. super.onDetach();
  66.  
  67. /*
  68. Saat detach maka set null pada optionDialogListener
  69. */
  70. this.optionDialogListener = null;
  71. }
  72.  
  73. @Override
  74. public void onClick(View v) {
  75. switch (v.getId()) {
  76. case R.id.btn_close:
  77. getDialog().cancel();
  78. break;
  79.  
  80. case R.id.btn_choose:
  81. int checkedRadioButtonId = rgOptions.getCheckedRadioButtonId();
  82. if (checkedRadioButtonId != -1) {
  83. String coach = null;
  84. switch (checkedRadioButtonId) {
  85. case R.id.rb_saf:
  86. coach = rbSaf.getText().toString().trim();
  87. break;
  88.  
  89. case R.id.rb_mou:
  90. coach = rbMou.getText().toString().trim();
  91. break;
  92.  
  93. case R.id.rb_lvg:
  94. coach = rbLvg.getText().toString().trim();
  95. break;
  96.  
  97. case R.id.rb_moyes:
  98. coach = rbMoyes.getText().toString().trim();
  99. break;
  100. }
  101.  
  102. if (optionDialogListener != null) {
  103. optionDialogListener.onOptionChosen(coach);
  104. }
  105. getDialog().dismiss();
  106. }
  107. break;
  108. }
  109. }
  110.  
  111. public interface OnOptionDialogListener {
  112. void onOptionChosen(String text);
  113. }
  114. }
Add Comment
Please, Sign In to add comment