【问题标题】:Pass Spinner Selected Items from Fragment to Activity [duplicate]将 Spinner Selected Items 从 Fragment 传递到 Activity [重复]
【发布时间】:2017-09-15 07:00:46
【问题描述】:

不了解完整的片段生命周期。

案例:

Activity 中单击FrameLayout 移动到Fragment 正在工作。

问题:

Fragment 中有两个spinners 和一个SubmitButton,当同时选中两个spinner 值时,单击SubmitButton,应将这些值从微调器显示回Activity's 两个Textviews .但是,我无法做到这一点。

我的解决方案:

我尝试使用IntentputExtras,然后是getExtras,但正如我们在Fragment 中一样,Intent 不适用于FragmentBundle 也没有帮助。

P.S. 需要了解好的 Fragment 生命周期的人。阅读来自 stackoverflow 和其他教程的许多帖子。没找到我的意思。

不想要像 eventBus 这样的外部库

【问题讨论】:

  • 写接口传值
  • android studio 创建Fragment,您将看到带有接口的示例,您可以使用该接口将数据发送到活动。右键单击包新建 -> 片段
  • 我已经阅读了@Akshay 的那篇文章,它与我的情况不同。否则,我不会问这个问题

标签: android android-intent fragment bundle android-spinner


【解决方案1】:

有两种方法可以做到这一点

1) 将 getActivity() 转换为您的 Activity 并调用特定方法并传递参数。

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

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

【讨论】:

  • 我可以从 Activity 调用我的片段,但是如何从片段发送到 Activity?我不确定片段
  • 我会发布示例等待。
  • 我仍然无法处理我的案件@Bhuvanesh Bs
  • 接口方法我马上贴出来
  • 查看我的更新答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-12
  • 2018-01-07
  • 1970-01-01
相关资源
最近更新 更多