Reputation: 3647
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
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
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
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