为了账号安全,请及时绑定邮箱和手机立即绑定

我如何将数据从片段传递到适配器

我如何将数据从片段传递到适配器

HUWWW 2023-05-17 17:46:48
现在我正在尝试将关键数据从片段传递到包含 recyclerview 的适配器,但问题是在我的情况下无法使用 bundle 或使用意图发送数据我很困惑如何传递数据..这是我的片段package com.example.together.fragment;public class PetchingLoungeFragment extends Fragment {    private static final String TAG = "PetFirendsFragment";    RecyclerView recyclerView;    PetchingLoungeAdapter petchingLoungeAdapter;    List<User> userList;    FirebaseUser firebaseUser;    List<String> idList = new ArrayList<>();    public String petKey;    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)    {        View view =  inflater.inflate(R.layout.fragment_petching_lounge, container, false);        recyclerView = view.findViewById(R.id.recycler_view);        recyclerView.setHasFixedSize(true);        firebaseUser = FirebaseAuth.getInstance().getCurrentUser();        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Lounge").child("PetchingBunyang").child(firebaseUser.getUid()).child("PetId");        reference.addValueEventListener(new ValueEventListener() {            @Override            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {                    for (DataSnapshot ds : dataSnapshot.getChildren())                    {                        String id = ds.getKey();                        PetchingLoungeFragment petchingLoungeFragment = new PetchingLoungeFragment(); // Fragment 생성                        Bundle bundle = new Bundle(1); // 파라미터는 전달할 데이터 개수                        bundle.putString("id", id); // key , value                        petchingLoungeFragment.setArguments(bundle);
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

在您的适配器类中创建一个公共函数和一个私有变量


Int id;


public void setId(int id) {

    this.id = id;

现在通过您的片段设置 ID


    petchingLoungeAdapter = new PetchingLoungeAdapter(getContext(), userList);

    petchingLoungeAdapter.setId(/* set ID here */) ;

    recyclerView.setAdapter(petchingLoungeAdapter);


查看完整回答
反对 回复 2023-05-17
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

你可以像这样编写适配器类的构造函数


       Context mContext;

        List<User> mUser;

          String id;


        public PetchingLoungeAdapter(Context mContext, List<User> mUser, String id)

        {

            this.mContext = mContext;

            this.mUser = mUser;

             this.id=id;

        }

你可以从你的片段中调用这个构造函数,如下所示


petchingLoungeAdapter = new PetchingLoungeAdapter(getContext(), userList,id);// pass the id here ( ds.getKey() ).

        recyclerView.setAdapter(petchingLoungeAdapter);


查看完整回答
反对 回复 2023-05-17
  • 2 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信