2016-08-21 10 views
-1

RecyclerViewの小さなImageButtonのリストをそれぞれ異なる色や背景で作成する必要があるとします。RecyclerView用のAndroidでImageButtonのモデルクラスを作成する正しい方法

どのモデルクラスが正しい方法ですか? 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; 
} 

ゲッターとセッターは、コードのコースの一部です。

答えて

2

カスタムビュー項目にImageボタンを追加し、それを膨らませると、リサイクル・ビューを、それがモデル

@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()); 


} 

したがって、2番目のモデルクラスImageButtonのインスタンスを取得する必要はありません

関連する問題