2016-08-21 40 views
-1

假设您必须为RecyclerView创建一个小型ImageButton的列表,每个具有不同的颜色或背景。在Android中为RecyclerView创建ImageButtons模型类的正确方法

哪一个模型类是正确的方法?

,其延伸的ImageButton

public class ColorButton2 extends ImageButton{ 

private Context context; 
private boolean isPlain, isWallpaper, isTextured; 
private int color; 

public ColorButton2(Context context,int color,boolean isPlain,boolean isTextured, boolean isWallpaper) { 
    super(context); 
    this.color = color; 
    this.isPlain = isPlain; 
    this.isWallpaper = isWallpaper; 
    this.isTextured = isTextured; 
} 

具有的ImageButton作为成员变量的类

模型类:

public class ColorButton2{ 

private ImageButton imageButton 
private Context context; 
private boolean isPlain, isWallpaper, isTextured; 
private int color; 

public ColorButton2(Context context,int color,boolean isPlain,boolean isTextured, boolean isWallpaper) { 
    super(context); 
    this.color = color; 
    this.isPlain = isPlain; 
    this.isWallpaper = isWallpaper; 
    this.isTextured = isTextured; 
} 

吸气剂和setter是代码的过程的一部分。

回答

2

您可以在自定义视图项添加图片按钮,然后在它充气和回收视图,并设置它的颜色编程方式从模型

@Override 
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int 
    viewType) 
{ 
     //inflate custom view custom_items 

    View itemView = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.custom_items, parent, false); 

    return new MyViewHolder(itemView); 
} 

申报图像按钮

public class MyViewHolder extends RecyclerView.ViewHolder { 
    public TextView title; 
    ImageButton imgButton; 
    LinearLayout linSetting; 
    public MyViewHolder(View view) { 
     super(view); 
     imgButton = (ImageView) view.findViewById(R.id.imgButton); 


    } 
} 

,然后设置颜色和任何其他你想要的参数

@Override 
public void onBindViewHolder(MyViewHolder holder, 
@SuppressLint("RecyclerView") final int position) { 
    ColorButton2 colorModel = arrayList.get(position); 

    holder.imgButton.setImageResource(colorModel.getColor()); 


} 

所以你有第二个模型类但你并不需要获得ImageButton的实例

相关问题