简体   繁体   English

我想使用回收者视图将数据从Firebase获取到内部片段

[英]I want to get data from firebase to inside fragment with recycler view

I'm trying to make a project for myself. 我正在为自己做一个项目。 I got stuck at some point. 我在某个时候被卡住了。

I want to get data from firebase to inside fragment with recycler view. 我想通过回收者视图将数据从Firebase获取到内部片段。

I really need your help. 我真的需要你的帮助。

I tried a few ways. 我尝试了几种方法。 But i couldn't it. 但是我做不到。 I create recyclerviewconfig and firebasehelper class but it didn't work. 我创建了recyclerviewconfig和firebasehelper类,但是没有用。 Today i tried firebaseUI. 今天,我尝试了firebaseUI。 but again didn't work. 但再次没有用。

public class Kumas extends Fragment {

    private View KumasFragmet;
    private RecyclerView KumasListesi;
    private DatabaseReference MaliyetKumasListesiReference;


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

        MaliyetKumasListesiReference = FirebaseDatabase.getInstance().getReference().child("test carisi").child("modeller").child("1").child("maliyet").child("kumas");

        KumasListesi = (RecyclerView) KumasFragmet.findViewById(R.id.maliyet_kumaş_rw);
        KumasListesi.setLayoutManager(new LinearLayoutManager(getContext()));


        FloatingActionButton flt = (FloatingActionButton) KumasFragmet.findViewById(R.id.kumas_ekle_floating);
        flt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent in = new Intent(getActivity(),KumasEkle.class);
                startActivity(in);
            }
        });

        return KumasFragmet;
    }

    @Override
    public void onStart() {
        super.onStart();

        FirebaseRecyclerOptions<KumasTanim> options = new FirebaseRecyclerOptions.Builder<KumasTanim>()
                .setQuery(MaliyetKumasListesiReference,KumasTanim.class)
                .build();

        FirebaseRecyclerAdapter<KumasTanim,MaliyetKumasListesiViewHolder> adapter =
                new FirebaseRecyclerAdapter<KumasTanim, MaliyetKumasListesiViewHolder>(options) {
                    @Override
                    protected void onBindViewHolder(@NonNull final MaliyetKumasListesiViewHolder maliyetKumasListesiViewHolder, int i, @NonNull KumasTanim kumasTanim) {

                                maliyetKumasListesiViewHolder.kumas_adi.setText(kumasTanim.getKumas_adi());
                                maliyetKumasListesiViewHolder.sarfiyat.setText(kumasTanim.getSarfiyat());
                                maliyetKumasListesiViewHolder.fiyat.setText(kumasTanim.getFiyat());



                    }

                    @NonNull
                    @Override
                    public MaliyetKumasListesiViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.maliyet_kumas_item,parent,false);
                        MaliyetKumasListesiViewHolder maliyetKumasListesiViewHolder = new MaliyetKumasListesiViewHolder(view);
                        return maliyetKumasListesiViewHolder;
                    }
                };
        KumasListesi.setAdapter(adapter);
        adapter.startListening();
    }

    public static class MaliyetKumasListesiViewHolder extends RecyclerView.ViewHolder {

        TextView kumas_adi,sarfiyat,fiyat;

        public MaliyetKumasListesiViewHolder(@NonNull View itemView) {
            super(itemView);

            kumas_adi = itemView.findViewById(R.id.item_kumas_adi_tw);
            sarfiyat = itemView.findViewById(R.id.item_sarfiyat_tw);
            fiyat = itemView.findViewById(R.id.item_fiyat_tw);
        }
    }
}

it doesn't give any errors. 它不会给出任何错误。

Kindly add event Listener , if you are not getting the data you then you will might get database error.Kidnly check that error first.To first the Problem. 请添加事件侦听器,如果没有获取数据,则可能会出现数据库错误,请先检查该错误。

  MaliyetKumasListesiReference .addValueEventListener(new ValueEventListener() {
      @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
          Post post = dataSnapshot.getValue(Post.class);
          System.out.println(post);
       }

      @Override
          public void onCancelled(DatabaseError databaseError) {
            System.out.println("The read failed: " + databaseError.getCode());
         }
       });

You need to add eventlistener to retrieve the data. 您需要添加eventlistener来检索数据。 So try the below method and hope it will work. 因此,请尝试以下方法,并希望它会起作用。

@Override
public void onStart() {
    super.onStart();

    FirebaseRecyclerOptions<KumasTanim> options = new FirebaseRecyclerOptions.Builder<KumasTanim>()
            .setQuery(MaliyetKumasListesiReference,KumasTanim.class)
            .build();

    FirebaseRecyclerAdapter<KumasTanim,MaliyetKumasListesiViewHolder> adapter =
            new FirebaseRecyclerAdapter<KumasTanim, MaliyetKumasListesiViewHolder>(options) {
                @Override
                protected void onBindViewHolder(@NonNull final MaliyetKumasListesiViewHolder maliyetKumasListesiViewHolder, int i, @NonNull KumasTanim kumasTanim) {





                  MaliyetKumasListesiReference.addValueEventListener(new ValueEventListener() {
                            @Override
                            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                                if (dataSnapshot.getChildrenCount()!=0){

                            maliyetKumasListesiViewHolder.kumas_adi.setText(kumasTanim.getKumas_adi());
                            maliyetKumasListesiViewHolder.sarfiyat.setText(kumasTanim.getSarfiyat());
                            maliyetKumasListesiViewHolder.fiyat.setText(kumasTanim.getFiyat());



                                }else {
                                    //if empty do something 
                                }

                            }

                            @Override
                            public void onCancelled(@NonNull DatabaseError databaseError) {

                            }
                        });






                }

                @NonNull
                @Override
                public MaliyetKumasListesiViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.maliyet_kumas_item,parent,false);
                    MaliyetKumasListesiViewHolder maliyetKumasListesiViewHolder = new MaliyetKumasListesiViewHolder(view);
                    return maliyetKumasListesiViewHolder;
                }
            };
    KumasListesi.setAdapter(adapter);
    adapter.startListening();
}

暂无
暂无

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

相关问题 无法将 FireBase 中的数据加载到 Recycler 视图中 - Cannot load data from FireBase into Recycler view Firebase 数据未显示在回收站视图中。 如何在 recyclerview 中显示来自 firebase 的用户特定数据? - Firebase data not displaying in Recycler view. How do I display user specific data from firebase in recyclerview? 在片段内使用回收器视图时出错 - Error while using recycler view inside a fragment 在swipeview片段的内部使用回收站视图 - Using a recycler view inside a fragment of a swipeview 为什么 firebase 无法在回收站视图中查询集合中的数据? - Why firebase is not able to query data from collection in recycler view? 无法从 firebase 数据库 android 中检索数据,回收站视图 - Unable to retrieve data from firebase database android, recycler view 想要在片段中使用回收器视图。 设置适配器时创建了一个适配器,它显示错误 - Want to use a recycler view in a fragment. Created an adapter when I set the adapter it shows me error 回收器视图适配器现在在片段中显示数据 - Recycler view adapter now displaying data in fragment Firebase Recycler View适配器(从Firebase检索) - Firebase Recycler View Adapter (Retrieving from firebase) 我想使用 Sql 数据库从回收站视图中收藏图像 问题是当我点击收藏按钮时,表格已创建但数据未存储 - i want to favorite images from recycler view using Sql databse problem is that when i click on favorite button the table is creat but data not store
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM