1

I am using FirebaseRecyclerAdapter to load and display items in RecyclerView. When I execute my code it is not displaying any item. Help would be much appreciated.

This is my Category Class:

public class Category {

private String Name;
private String Image;

public Category()
{

}

public Category(String name, String image)
{
    Name = name;
    Image = image;
}

public String getName()
{
    return Name;
}

public void setName(String name)
{
    Name = name;
}

public String getImage()
{
    return Image;
}

This is MenuViewHolder Class:

public class MenuViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

public TextView txtMenuName;
public ImageView imageView;

private ItemClickListener itemClickListener;

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

    txtMenuName = (TextView)itemView.findViewById(R.id.menu_name);
    imageView = (ImageView)itemView.findViewById(R.id.menu_image);

    itemView.setOnClickListener(this);
}

public void setItemClickListener(ItemClickListener itemClickListener) {
    this.itemClickListener = itemClickListener;
}

@Override
public void onClick(View v) {
 itemClickListener.onClick(v, getAdapterPosition(),false);
}

This is Home Class :

  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setTitle("Menu");
    setSupportActionBar(toolbar);


    //Init Firebase
    database = FirebaseDatabase.getInstance();
    category = database.getReference("Category");

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

    //Set Name for user
    View headerView = navigationView.getHeaderView(0);
    txtFullName = (TextView)headerView.findViewById(R.id.txtFullName);
    txtFullName.setText(Common.currentUser.getName());

    //Load menu
    recycler_menu = (RecyclerView)findViewById(R.id.recycler_menu);
    recycler_menu.setHasFixedSize(true);
    layoutManager = new LinearLayoutManager(this);
    recycler_menu.setLayoutManager(layoutManager);


    options = new FirebaseRecyclerOptions.Builder<Category>()
            .setQuery(category, Category.class).build();
    loadMenu();

}

private void loadMenu() { FirebaseRecyclerAdapter<Category,MenuViewHolder> adapter = new FirebaseRecyclerAdapter<Category, MenuViewHolder>(options) {

@NonNull
@Override
public MenuViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    return null;
}

@Override
protected void onBindViewHolder(@NonNull MenuViewHolder holder, int position, @NonNull Category model) {
   holder.txtMenuName.setText(model.getName());
    Picasso.with(getBaseContext()).load(model.getImage())
            .into(holder.imageView);
    final Category clickItem = model;
    holder.setItemClickListener(new ItemClickListener() {
        @Override
        public void onClick(View view, int position, boolean isLongClick) {
            Toast.makeText(Home.this,""+clickItem.getName(),Toast.LENGTH_SHORT).show();
        }
    });
}};     recycler_menu.setAdapter(adapter);}

here is my XML Layout content_home:

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_menu"
    android:scrollbars="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</android.support.v7.widget.RecyclerView>

And this is menu_item Card view :

 <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/menu_image"
        android:src="@drawable/food"
        android:scaleType="centerCrop"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <TextView
        android:id="@+id/menu_name"
        android:text="Name of Menu"
        android:textColor="@android:color/white"
        android:background="#4f0e0d0e"
        android:textSize="20dp"
        android:gravity="center"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</RelativeLayout>

This is the structure of my database: DataBase Structure

Nelo
  • 11
  • 2

0 Answers0