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

时间:2021-01-13 14:58:55

标签: java android android-intent android-recyclerview fragment

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

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 是空的。

1 个答案:

答案 0 :(得分:1)

需要两步:

  1. 将数据从 Homefragment 发送到 EmptyActivity。

    为此,您可以使用 // noinspection CssNoGenericFontName .my_text { font-family: 'DINPro-Medium'; } 方法。

  2. 将数据从 EmptyActivity 设置为 OverviewFragment。

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

相关问题