1

This is a part java file which has the function loadMenu and when the corresponding intent opens, the app closes unexpectedly.

private void loadMenu() {
    FirebaseRecyclerAdapter<Category,MenuViewHolder> adapter = new                                     FirebaseRecyclerAdapter<Category, MenuViewHolder>    (Category.class,R.layout.item_menu,MenuViewHolder.class,category) {
            @Override
            protected void populateViewHolder(MenuViewHolder viewHolder, Category model, int position) {

                viewHolder.txtMenuname.setText(model.getName());
                Picasso.with(getBaseContext()).load(model.getImage())
                        .into(viewHolder.imageView);
                final Category clickItem = model;
                viewHolder.setItemClickListener(new ItemClickListener() {
                    @Override
                    public void OnClick(View view, int position, boolean isLongClick) {
                        Toast.makeText(navi.this,""+clickItem.getName(),Toast.LENGTH_SHORT).show();
                }

                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                    }
                });

            }
        };
          recycle_menu.setAdapter(adapter);
    }

This is my MenuviewHolder class:I just created a database for images in firebase and linking it to my app, but its not showing images just background.

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

public TextView txtMenuname;
public ImageView imageView;
private ItemClickListener itemClickListener;
public MenuViewHolder(View itemView) {
    super(itemView);

    txtMenuname = (TextView)itemView.findViewById(R.id.menu_name);
    itemView = (ImageView)itemView.findViewById(R.id.menu_image);
    itemView.setOnClickListener(this);
}

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

@Override
public void onClick(View view) {
    itemClickListener.OnClick(view,getAdapterPosition(),false);

}

}

Adapter Code to link the images and name to app using firebaseUI

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;
    }

    public void setImage(String image) {
        Image = image;
    }
}
Karthik N
  • 23
  • 8
  • 3
    viewHolder.imageView is null.. – Itzik Samara Dec 31 '17 at 18:30
  • @ItzikSamara can u suggest me how to correct it!!! – Karthik N Dec 31 '17 at 19:14
  • Possible duplicate of [Picasso IllegalArgumentException Target must not be null](https://stackoverflow.com/questions/26790301/picasso-illegalargumentexception-target-must-not-be-null) – Aditya Dec 31 '17 at 19:20
  • @AdityaSonel sir with due all respect can u update my code n publish it – Karthik N Dec 31 '17 at 19:27
  • First of all use `getContext` instead of `getBaseContext` because you have to use `context` of currently running `activity`, so here `getBaseContext` is unnecessary. And second you are getting `Exception` because `model.getImage()` is returning `null`, so instead of loading image by picasso, first log value of `model.getImage()` and check why are you getting value null. – Aditya Dec 31 '17 at 19:34
  • And in some conditions when you have to pass `null` value of image, then use `placeholder` in picasso. That will handle this `Exception`. – Aditya Dec 31 '17 at 19:40
  • Please share code, where you are getting images and names in list ? – Syed Hamza Hassan Jan 03 '18 at 09:05
  • @SyedHamzaHassan can i get your mail id...i ll send u the whole codes sir – Karthik N Jan 03 '18 at 15:10
  • Share link via drop box or google drive. – Syed Hamza Hassan Jan 04 '18 at 05:23
  • https://www.dropbox.com/sh/orr6c0wkzcf1csx/AADGT_Tt8zjPmhEST1zgcNxwa?dl=0 – Karthik N Jan 06 '18 at 16:21

1 Answers1

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

 (Category.class,R.layout.item_menu, 
 MenuViewHolder.class,category) {
        @Override
        protected void      


 populateViewHolder(MenuViewHolder   viewHolder,     

 Category model, int position) {


  viewHolder.txtMenuname.setText(model.getName());
  If (model.getimage() != null){          

 Picasso.with(getapplicationcontext()). 
 load (model.getImage())
                    .into(viewHolder.imageView);}
  else {//Toast here}
            final Category clickItem = model;
            viewHolder.setItemClickListener(new      

ItemClickListener() {
                @Override
                public void OnClick(View view, int position,     

boolean isLongClick) {


Toast.makeText(navi.this,""+clickItem.getName(), 
Toast.LEN
 GTH_SHORT).show();
            }

                @Override
                public void onItemClick(AdapterView<?> parent,       

 View view, int position, long id) {

                }
            });

        }
     };
      recycle_menu.setAdapter(adapter);
   }
Syed Hamza Hassan
  • 710
  • 1
  • 11
  • 24