如何将R.drawable作为参数传递,以便我可以解析图像

Mec*_*h0z 5 java android

我尝试将一个独特的图像保存到每个对象,但我得到这个错误,构造函数应该如何寻找它以这种方式工作?构造函数Beer(String,int,int)未定义

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

}
Run Code Online (Sandbox Code Playgroud)

Waz*_*_Be 9

final Beer b1 = new Beer("Tuborg", 7,context.getResources().getDrawable(R.drawable.tuborg));
Run Code Online (Sandbox Code Playgroud)

和以前说的一样:

public Beer(String name, int color, Drawable icon)
Run Code Online (Sandbox Code Playgroud)

或者你可以发送int作为参数:

final Beer b1 = new Beer("Tuborg", 7, R.drawable.tuborg);
Run Code Online (Sandbox Code Playgroud)

和:

public Beer(String name, int color, int icon)
{
    this.name = name;
    this.color = color;
    this.icon = context.getResources().getDrawable(icon);
}
Run Code Online (Sandbox Code Playgroud)

  • getDrawable() 在 API 22 中不再使用 (2认同)