如何使用java将数据从片段传递到android中的另一个片段?

Posted

技术标签:

【中文标题】如何使用java将数据从片段传递到android中的另一个片段?【英文标题】:How to pass data from fragment to another fragment in android using java? 【发布时间】:2021-04-18 14:44:58 【问题描述】:

现在我从 API 获取了所有数据,并将其显示在 Homefragment 中,现在我想要下一个片段的标题,称为概览片段。实际上,overviewfragment 处于空活动状态,所以现在如何将数据从一个片段传递到另一个片段。

class MostCrowdedRecyclerAdapter 
    @NonNull
    @Override
    public TopViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) 
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_layout_layout_5, parent, false);
        return new TopViewHolder(view);
    

    @SuppressLint("SetTextI18n")
    @Override
    public void onBindViewHolder(@NonNull TopViewHolder holder, int position) 

        holder.restaurantName.setText(list.get(position).getName());
        holder.distance.setText(list.get(position).getDistance() + " Mile");
        vybeAPI = Float.valueOf(list.get(position).getVybe());
        holder.vybe.setText(vybeAPI + "%");
        //   setAnimation(holder.itemView, position);
        holder.v.setOnClickListener(v ->                                         <--here I did Intent i = new Intent(v.getContext(), EmptyActivity.class);
            i.putExtra("Restaurant", getItemId(position));
            context.startActivity(i);
        );
    

    @Override
    public int getItemCount() 
        int limit = 6;
        return Math.min(list.size(), limit);
    


    OverViewFragment:
    String data;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_over_view, container, false);
        TextView singletitle = view.findViewById(R.id.single);
        try 
            data = String.valueOf(Intent.getIntent("Restaurant").getExtras());
         catch (URISyntaxException e) 
            e.printStackTrace();
        
    

这里我需要将标题从 homefragment 传递给 overviewfragment,但 overviewfragment 处于空活动状态。

【问题讨论】:

如果你的fragment在两个不同的activity中,可以看这个答案***.com/a/44584741/908821 这能回答你的问题吗? How to pass values between Fragments 【参考方案1】:

需要两步:

    将数据从 Homefragment 发送到 EmptyActivity。

    为此,您可以使用putExtra() 方法。

    将 EmptyActivity 中的数据设置为 OverviewFragment。

    为此,您可以使用setArgument() 方法。

【讨论】:

以上是关于如何使用java将数据从片段传递到android中的另一个片段?的主要内容,如果未能解决你的问题,请参考以下文章

Java Android - 将数据从活动发送到片段

如何将数据从一个活动传递到android中的另一个活动片段? [复制]

如何使用菜单按钮将数据从活动传递到android中的片段?

Android Java将变量从片段传递到活动[重复]

如何从活动中传递回调到片段

Android如何成功截击请求,如何将数据从Activity传递到Fragment?