通过微调器从片段到活动的所选项目

问题描述:

不理解完整片段的生命周期。通过微调器从片段到活动的所选项目

案例:

点击FrameLayoutActivity移动到Fragment工作。

问题:

Fragment有两个spinners和一个SubmitButton,选择既spinner值时,的SubmitButton的点击,应该从喷丝显示这些值返回到。但是,我无法做到这一点。

我的解决方案:

我试图用IntentputExtras然后getExtras,但我们是在FragmentIntent是不会为Fragment工作。 Bundle也没有帮助。

P.S.需要了解Fragment良好生命周期的人。阅读从*和其他教程很多帖子。没有找到我的意思。

不想外部库这样eventBus

+0

写入接口来传递值 –

+0

当你在一个片段中,你可以使用回调,或者使用getActivity()或getContext()获得对Activity的引用,并将值传回给调用特定的方法活动 – MatPag

+0

从'android studio'创建'Fragment',你会看到一个接口示例,你可以使用它将数据发送到活动。右键单击包新 - >片段 –

两种方法可以做到这一点

1)铸造getActivity()为您的活动,并呼吁具体方法,并传递参数。

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

2)创建接口并将该值传递给活性。

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

注意:安全方法是使用接口。

+0

我可以从Activity中调用我的片段,但abt如何从片段发送到Activity?我不知道与片段 – Zoffa

+0

我会发布示例等。 –

+0

我仍然在麻烦不处理我的情况@Bhuvanesh Bs – Zoffa