Mech0z
Mech0z

Reputation: 3647

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

}

Upvotes: 8

Views: 9931

Answers (4)

Nadeem
Nadeem

Reputation: 93

If what i understand from your question is true then i think your aim is to add drawable image as a parameter if thats what you want then you should add the

  @DrawableRes int image

like

public Beer(String name, int color,@DrawableRes int icon)
{
    this.name = name;
    this.color = color;
    this.icon = icon;
}

as your parameter then you can add drawable files in here

Upvotes: 0

Sajeeb Chandan Saha
Sajeeb Chandan Saha

Reputation: 865

You can use context's getDrawable() to implement that. In my case it worked.

my_signature_element.setBackground(this.getResources().getDrawable(R.drawable.bg_round_signature, null));

Upvotes: 0

Waza_Be
Waza_Be

Reputation: 39538

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

Upvotes: 12

just_another_coder
just_another_coder

Reputation: 1166

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

Upvotes: 0

Related Questions