package com.exam.administrator.nccc_trip;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import java.util.ArrayList;
/**
* Created by user on 2017-07-13.
*/
public class MaterialAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private ArrayList<MaterialItem> mItems;
private int lastPosition = -1;
public MaterialAdapter(ArrayList items, Context mContext) {
mItems = items;
context = mContext;
}
@Override
public int getItemViewType(int position) {
// Just as an example, return 0 or 2 depending on position
// Note that unlike in ListView adapters, types don't have to be contiguous
return position;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
RecyclerView.ViewHolder holder = null;
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.material, parent, false);
holder = new ViewHolder(v);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
mItems.get(position).setCheckPosition(position);
final int po = mItems.get(position).getCheckPosition();
((ViewHolder) holder).checkBox.setText(mItems.get(position).getCheckTitle());
((ViewHolder) holder).deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mItems.remove(po);
}
});
}
@Override
public int getItemCount() {
return mItems.size();
}
public final static class ViewHolder extends RecyclerView.ViewHolder {
public CheckBox checkBox;
public Button deleteButton;
public ViewHolder(View view) {
super(view);
checkBox = (CheckBox) view.findViewById(R.id.material_check);
deleteButton = (Button) view.findViewById(R.id.material_bbutton);
}
}
}
이렇게 하면 삭제 버튼을 누르면 해당 뷰가 없어지는게 아니고 마지막에 추가한 게 삭제가 되는데 아마 final 값을 보내서 그런거 같기는한데 이걸 어떻게 바꿀 방법이 생각 나질 않아요 ㅠㅠ