代码之家  ›  专栏  ›  技术社区  ›  Zafar Kurbonov

将微调器所选项目从片段传递到活动[重复]

  •  0
  • Zafar Kurbonov  · 技术社区  · 7 年前

    不完全理解碎片生命周期。

    FrameLayout 从…起 Activity 移动到 Fragment 正在工作。

    在里面 有两个 spinners SubmitButton ,当同时选中时 spinner 值,单击 ,应显示从微调器返回到 Activity's Textviews

    我的解决方案:

    Intent , putExtras getExtras ,但当我们在 碎片 , 不适用于 碎片 . Bundle

    附笔。 需要了解good Fragment生命周期的人。阅读stackoverflow和其他教程中的许多帖子。没有发现我的意思。

    不希望外部库成为事件总线

    1 回复  |  直到 7 年前
        1
  •  1
  •   Bhuvanesh BS    7 年前

    有两种方法可以做到

    1) 铸造

    public class MyActivity extends AppCompatActivity {
    
      public void setData(String value){
            // do whatever with the data
      }
    }
    
    public class MyFragment extends Fragment{
    
       public void someMethod(){
         ((MyActivity)getActivity).setData(your_data);
       }
    }
    

    界面

    public class MyActivity extends AppCompatActivity implements SpinnerListener{
    
      @Override
      public void onSpinnerItemSelected(String value){
            // do whatever with the data
      }
    
      public interface SpinnerListener {
        void onSpinnerItemSelected(String value);
      }
    }
    
    public class MyFragment extends Fragment {
    
        private SpinnerListener spinnerListener;
    
        @Override
        public void onAttach(Context context) {
            super.onAttach(context);
            if(context instanceOf MyActivity)
               spinnerListener = ((MyActivity)context);
        }
    
       public void someMethod() {
          if(spinnerListener != null)
            spinnerListener.onSpinnerItemSelected(your_data); 
       }
    }