Как получить данные из нижнего фрагмента к основному виду деятельности? - PullRequest
0 голосов
/ 27 февраля 2020

Я создал нижний фрагмент, и теперь мне нужны данные из нижнего фрагмента в основном упражнении при нажатии кнопки в нижнем фрагменте. Я видел несколько ответов, создавая интерфейс, но не совсем ясно с концепцией.

Код:

Основная деятельность с использованием этой функции для вызова фрагмента:

public void showSchedule() {


    BottomSheetFrag bottomSheetFragment = new BottomSheetFrag();


    Bundle bundle = new Bundle();
    bundle.putString("UserId", Parlour_BeauticianID);

    bottomSheetFragment.setArguments(bundle);
    bottomSheetFragment.show(getSupportFragmentManager(), bottomSheetFragment.getTag());


}

Фрагмент:

public class BottomSheetFrag extends BottomSheetDialogFragment {
public static BottomSheetFrag newInstance() {
    return new BottomSheetFrag();
}

public View onCreateView(LayoutInflater inflater,
                         @Nullable ViewGroup container,
                         @Nullable Bundle savedInstanceState) {

    final View view = inflater.inflate(R.layout.activity_appointment, container, false);

    Bundle bundle = getArguments();
    userID = bundle.getString("UserId");


    ImageView imageViewClose = (ImageView) view.findViewById(R.id.imageClose);
    final Fragment f = getActivity().getFragmentManager().findFragmentById(R.id.Linear_layout);


    imageViewClose.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            dismiss();

        }
    });

button9AM1 = (Button) view.findViewById(R.id.button9AM1);

 /* when i click the button9AM1 i want to send the data as as 9AM to main activity */

 }} 

1 Ответ

0 голосов
/ 27 февраля 2020
interface OnclickDataLisnter{
   void onClick(String data);
}

и

 public void showSchedule() {


BottomSheetFrag bottomSheetFragment = new BottomSheetFrag();

bottomSheetFragment.setClickListner(new OnclickDataLisnter(){
                                       @Overrid
                                        public void onClick(String data){
                                         //You listner here your data
                                         }
                                    }
Bundle bundle = new Bundle();
bundle.putString("UserId", Parlour_BeauticianID);

bottomSheetFragment.setArguments(bundle);
bottomSheetFragment.show(getSupportFragmentManager(), 
bottomSheetFragment.getTag());

}

и

     public class BottomSheetFrag extends 
          BottomSheetDialogFragment {
          public OnclickDataLisnter clickListner;
          public static BottomSheetFrag newInstance() {
            return new BottomSheetFrag();
          }
          public void setClickListner(OnclickDataLisnter clickListner){//add this
            this.clickListner = clickListner; // add this

            }
         public View onCreateView(LayoutInflater inflater,
                     @Nullable ViewGroup container,
                     @Nullable Bundle savedInstanceState) {

        final View view = inflater.inflate(R.layout.activity_appointment, container, false);

      Bundle bundle = getArguments();
    userID = bundle.getString("UserId");


      ImageView imageViewClose = (ImageView) view.findViewById(R.id.imageClose);
       final Fragment f = getActivity().getFragmentManager().findFragmentById(R.id.Linear_layout);


   imageViewClose.setOnClickListener(new View.OnClickListener() 
   {
    @Override
    public void onClick(View v) {

        dismiss();

        }
   });

    button9AM1 = (Button) view.findViewById(R.id.button9AM1);

        /* when i click the button9AM1 i want to send the data as as 9AM to main activity */
        clickListner.onClick(data); //add this

  }} 
...