Skip to content
Advertisement

How do I pass a R.drawable as a parameter so I can get images parsed

I try to save a unique image to each object but I get this error, how should the constructor look for it to work that way? The constructor Beer(String, int, int) is undefined

m_beer = new ArrayList<Beer>();
              final Beer b1 = new Beer("Tuborg", 7, R.drawable.tuborg);
              final Beer b2 = new Beer("Carlsberg", 7, R.drawable.carlsberg);
              final Beer b3 = new Beer("Urquel", 9, R.drawable.urquel);


public class Beer 
{
    //Members
    private String name;
    private int color; //1 = Very dark 10 = Very light
    private R.drawable icon;

    //Methods
    public Beer(String name, int color, R.drawable icon)
    {
        this.name = name;
        this.color = color;
        this.icon = icon;
    }

    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public int getColor()
    {
        return this.color;
    }
    public void setColor(int color)
    {
        this.color = color;
    }

    public R.drawable getIcon()
    {
        return icon;
    }

}

Advertisement

Answer

final Beer b1 = new Beer("Tuborg", 7,context.getResources().getDrawable(R.drawable.tuborg));

and like said before:

public Beer(String name, int color, Drawable icon)

Or you can send the int as parameter:

final Beer b1 = new Beer("Tuborg", 7, R.drawable.tuborg);

and:

public Beer(String name, int color, int icon)
{
    this.name = name;
    this.color = color;
    this.icon = context.getResources().getDrawable(icon);
}
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement