简体   繁体   English

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

[英]How to pass data from fragment to another fragment in android using java?

Now I got all data from API and I displayed it in Homefragment now I want the title to the next fragment which is called overviewfragment.现在我从 API 中获取了所有数据,并将其显示在 Homefragment 中,现在我想要下一个片段的标题,称为概览片段。 Actually overviewfragment is in emptyactivity so now how to pass data from one fragment to another fragment.实际上,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();
        }
    }
}

Here I need to pass title from homefragment to overviewfragment but overviewfragment is in emptyactivity.在这里,我需要将标题从 homefragment 传递给overviewfragment,但overviewfragment 处于空活动状态。

Need to two steps:需要两步:

  1. Send data from Homefragment to EmptyActivity.将数据从 Homefragment 发送到 EmptyActivity。

    for this, you could use putExtra() method.为此,您可以使用putExtra()方法。

  2. Set data from EmptyActivity to OverviewFragment.将 EmptyActivity 中的数据设置为 OverviewFragment。

    for this, you could use setArgument() method.为此,您可以使用setArgument()方法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM