将数据从片段发送到另一个片段

毒药8

我有一个片段,我在其中要求用户选择他的团队。它打开另一个片段,用户可以选择他的团队。但是我卡住了,因为无法将团队详细信息发送到上一个片段。

用户单击按钮设置主队,从 team_select_fragment 中选择球队,但我无法将球队详细信息发送到第一个片段。

以下是mathc_fragment用户填写匹配数据的代码

@Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_create_match, container, false);

    Toolbar toolbar = rootView.findViewById(R.id.nav_toolbar);
    ((PlayerProfileActivity) getActivity()).getSupportActionBar().setTitle("Create Match");

    city_name = rootView.findViewById(R.id.cityNameEditText);
    ground_name = rootView.findViewById(R.id.groundNameEditText);

    setupImageButton(rootView);
    setupNumberOfPlayersButton(rootView);
    setupHalfTimeButton(rootView);

    preferenceConfig = new SharedPreferenceConfig(this.getContext());

    requestQueue = Volley.newRequestQueue(getActivity());

    Button startMatch = rootView.findViewById(R.id.start_match_bn);


    return rootView;
}

@Override
public void onAttach(Context context) {
    super.onAttach(context);

    try {
        rootActivity = (PlayerProfileActivity) context;
    } catch (Exception exception) {
        rootActivity = null;
    }
}

private void setupImageButton(final View rootView) {
    //Select Home team
    ImageButton homeTeamImageButton = rootView.findViewById(R.id.homeTeamImageButton);
    homeTeamImageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getChildFragmentManager().beginTransaction().add(R.id.create_match_container,new TeamSelect()).commit();
        }
    });

   //select away team
    ImageButton awayTeamImageButton = rootView.findViewById(R.id.awayTeamImageButton);
    awayTeamImageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getChildFragmentManager().beginTransaction().add(R.id.create_match_container,new TeamSelect()).commit();
        }
    });
}

这是代码team_select_fragment

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View rootView = inflater.inflate(R.layout.fragment_team_select, container, false);

        editText = rootView.findViewById(R.id.team_select_search);

        recyclerView = rootView.findViewById(R.id.team_select_recyclerView);
        recyclerView.setHasFixedSize(true);

        recyclerView.setLayoutManager(new LinearLayoutManager(this.getContext()));

        list_items = new ArrayList<>();
        teamSelectAdapter = new TeamSelectAdapter(list_items, getContext());

        recyclerView.setAdapter(teamSelectAdapter);

        teamSelectAdapter.setOnItemClickListener(this);

        loadRecyclerViewData();

        return rootView;
    }

    private void loadRecyclerViewData() {

        stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                try {
                    JSONObject jsonObject = new JSONObject(response);
                    int success = jsonObject.getInt("success");
                    if(success==1){
                        JSONArray jsonArray = jsonObject.getJSONArray("Teams");
                        for (int i=0; i < jsonArray.length(); i++){
                            JSONObject jsonObject_current = jsonArray.getJSONObject(i);
                            TeamSelectModelClass teamSelectModelClass = new TeamSelectModelClass(
                                    jsonObject_current.getString("team_id"),
                                    jsonObject_current.getString("team_name"),
                                    jsonObject_current.getString("team_logo_url")
                            );
                            list_items.add(teamSelectModelClass);
                        }
                        teamSelectAdapter.notifyDataSetChanged();
                    }else if(success==0){
                        String message = jsonObject.getString("Message");
                        Toast.makeText(getContext(),message,Toast.LENGTH_SHORT).show();
                    }

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getContext(), error.getMessage(), Toast.LENGTH_LONG).show();
            }
        }) 
        };
        requestQueue = Volley.newRequestQueue(getContext());
        requestQueue.add(stringRequest);
    }



    @Override
    public void onItemClick(int position) {
        TeamSelectModelClass clickedItem = list_items.get(position);
        String team_id = clickedItem.getTeam_id();
        String team_name = clickedItem.getTeam_name();
        String team_logo = clickedItem.getTeam_logo_url();

    }
阴影

2解决方案:-如果你回到片段(通过创建新片段),创建一个回调

A extends Fragment(){

public A setMethod(X a){
this.a = a;
  return this;
}
}

并在片段 B 中调用

new A().setData(yourdata)

第二种解决方案是您只需将数据添加到 SharePreference 并在从另一个片段返回时获取它

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将数据从一个片段发送到另一个片段?

来自分类Dev

将数据从一个活动发送到另一个活动的片段

来自分类Dev

将图片ID从片段发送到另一个活动

来自分类Dev

如何在相同的片段活动中将数据从一个片段发送到另一个片段?

来自分类Dev

来自一个片段的信息没有发送到另一个

来自分类Dev

将对象发送到另一个片段后进行更改

来自分类Dev

如何在Android中将ArrayList <NameValuePair>从一个片段发送到另一个

来自分类Dev

发送到android中的另一个片段后,捆绑的对象显示为null

来自分类Dev

在Android中更新数据后,将数据发送到另一个活动

来自分类Dev

UICollectionViewCell将数据发送到另一个viewController

来自分类Dev

将数据发送到等待ppoll的另一个进程的stdin

来自分类Dev

Android将数据从主UI线程发送到另一个线程

来自分类Dev

OS X将数据发送到另一个应用程序

来自分类Dev

如何将数据发送到另一个Android设备

来自分类Dev

Android:将数据发送到另一个致命错误的活动

来自分类Dev

将数据发送到另一个视图:不能解开选项

来自分类Dev

如何使用PHP将数据发送到另一个页面?

来自分类Dev

通过linux终端将数据发送到另一个进程的stdin

来自分类Dev

无法将数据发送到另一个页面

来自分类Dev

如何将数据从表单发送到另一个页面?

来自分类Dev

将数据发送到另一个用户控件内的用户控件

来自分类Dev

如何将Flask中的数据发送到另一个页面?

来自分类Dev

通过VBA将数据发送到另一个工作簿

来自分类Dev

定位标记,用于将发布数据发送到另一个页面

来自分类Dev

将数据发送到另一个视图:不能解开选项

来自分类Dev

Android:将数据发送到另一个致命错误的活动

来自分类Dev

将选定的用户数据发送到另一个视图

来自分类Dev

OS X将数据发送到另一个应用程序

来自分类Dev

如何将数据发送到另一个基因剔除模型?

Related 相关文章

  1. 1

    如何将数据从一个片段发送到另一个片段?

  2. 2

    将数据从一个活动发送到另一个活动的片段

  3. 3

    将图片ID从片段发送到另一个活动

  4. 4

    如何在相同的片段活动中将数据从一个片段发送到另一个片段?

  5. 5

    来自一个片段的信息没有发送到另一个

  6. 6

    将对象发送到另一个片段后进行更改

  7. 7

    如何在Android中将ArrayList <NameValuePair>从一个片段发送到另一个

  8. 8

    发送到android中的另一个片段后,捆绑的对象显示为null

  9. 9

    在Android中更新数据后,将数据发送到另一个活动

  10. 10

    UICollectionViewCell将数据发送到另一个viewController

  11. 11

    将数据发送到等待ppoll的另一个进程的stdin

  12. 12

    Android将数据从主UI线程发送到另一个线程

  13. 13

    OS X将数据发送到另一个应用程序

  14. 14

    如何将数据发送到另一个Android设备

  15. 15

    Android:将数据发送到另一个致命错误的活动

  16. 16

    将数据发送到另一个视图:不能解开选项

  17. 17

    如何使用PHP将数据发送到另一个页面?

  18. 18

    通过linux终端将数据发送到另一个进程的stdin

  19. 19

    无法将数据发送到另一个页面

  20. 20

    如何将数据从表单发送到另一个页面?

  21. 21

    将数据发送到另一个用户控件内的用户控件

  22. 22

    如何将Flask中的数据发送到另一个页面?

  23. 23

    通过VBA将数据发送到另一个工作簿

  24. 24

    定位标记,用于将发布数据发送到另一个页面

  25. 25

    将数据发送到另一个视图:不能解开选项

  26. 26

    Android:将数据发送到另一个致命错误的活动

  27. 27

    将选定的用户数据发送到另一个视图

  28. 28

    OS X将数据发送到另一个应用程序

  29. 29

    如何将数据发送到另一个基因剔除模型?

热门标签

归档