Skip to content

How to update the query at run time using the same adapter and in same fragment. #1883

Open
@Princejack66

Description

@Princejack66
  • Android device: Android Studio
  • Android OS version: 4.5
  • Firebase/Play Services SDK version: 19.5.1
  • FirebaseUI version: 6.3.0

Step 3: Describe the problem:

I want to update the query at run time using the same adapter. I have a number of filters that I want to apply at run time to filter out the data from the real-time database. I have even tried the update option but that didn't work well and nothing happened.

Even the logcat don't show any error or bugs,

here is my code to update the query.
Query to update

Query newQuery = FirebaseDatabase.getInstance().getReference().child("King").orderByChild("Category").equalTo("Gaming");
      FirebaseRecyclerOptions<ToolsInfo> newOption = new FirebaseRecyclerOptions.Builder<ToolsInfo>().setQuery(newQuery,ToolsInfo.class).build();
      myAdapter.updateOptions(newOption);
      recyclerView.setAdapter(myAdapter);
      myAdapter.notifyDataSetChanged();

Adapter Code

package com.example.pjtools;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.media.Image;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;

import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.squareup.picasso.Picasso;
public class MyAdapter extends FirebaseRecyclerAdapter<ToolsInfo,MyAdapter.myViewHolder> {
    LoadingDialog loadingDialog;
    public MyAdapter(@NonNull FirebaseRecyclerOptions<ToolsInfo> options, Activity activity) {
        super(options);
        loadingDialog = new LoadingDialog(activity);
        loadingDialog.startLoading();
    }

    @Override
    protected void onBindViewHolder(@NonNull myViewHolder holder, int position, @NonNull ToolsInfo model) {
        holder.name.setText(model.getName());
        holder.date.setText("Release Date: " + model.getRelease_date());
        holder.version.setText("Version: " + model.getVersion());
        holder.category.setText("Category: " + model.getCategory());
        Picasso.get().load(model.getImageURL()).fit().into(holder.img);

        holder.cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(holder.cardView.getContext(),ToolOpenActivity.class);
                intent.putExtra("id",model.getId());
                holder.cardView.getContext().startActivity(intent);
            }
        });
    }

    @NonNull
    @Override
    public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_row,parent,false);
        loadingDialog.stopLoading();
        return new myViewHolder(view);
    }

    class myViewHolder extends RecyclerView.ViewHolder{
        ImageView img;
        TextView name, date, version, category;
        CardView cardView;
        public myViewHolder(@NonNull View itemView) {
            super(itemView);
            img = itemView.findViewById(R.id.row_img);
            name = itemView.findViewById(R.id.row_name);
            date = itemView.findViewById(R.id.row_release_date);
            version = itemView.findViewById(R.id.row_version);
            category = itemView.findViewById(R.id.row_category);
            cardView = itemView.findViewById(R.id.cardView);


        }
    }

}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions