Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从底部片段到主活动获取数据?_Java_Android_Android Fragments - Fatal编程技术网

Java 如何从底部片段到主活动获取数据?

Java 如何从底部片段到主活动获取数据?,java,android,android-fragments,Java,Android,Android Fragments,我已经创建了一个底部片段,现在当在底部片段中单击按钮时,我需要一些来自主活动中底部片段的数据。通过创建界面,我几乎看不到答案,但概念不太清楚 代码: 使用此函数调用片段的主要活动: 片段: public class BottomSheetFrag extends BottomSheetDialogFragment { public static BottomSheetFrag newInstance() { return new BottomSheetFrag(); } public

我已经创建了一个底部片段,现在当在底部片段中单击按钮时,我需要一些来自主活动中底部片段的数据。通过创建界面,我几乎看不到答案,但概念不太清楚

代码:

使用此函数调用片段的主要活动: 片段:

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 */

 }} 

}


我不确定,但看看这篇文章,看看这是否是你需要的。非常感谢。我看到了很多关于接口逻辑的帖子,但当我点击一个按钮时,我就不知道如何实现它了。这很干净,解决了我的问题。
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 */

 }} 
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

  }}