class FileAdapter extends ArrayAdapter<Files> implements OnClickListener{
private ArrayList<Files> files;
private ViewHolder vh = null;
public FileAdapter(Context context, int textViewResourceId, ArrayList<Files> files) {
super(context, textViewResourceId, files);
this.files = files;
isChecked = new boolean[files.size()];
all_check = (CheckBox)findViewById(R.id.main_all_check_box);
all_check.setOnClickListener(this);
// TODO Auto-generated constructor stub
}
public View getView(int position, View convertView, ViewGroup parent){
View v = convertView;
if(v == null){
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.ex01, null);
vh = new ViewHolder();
vh.tv1 = (TextView)v.findViewById(R.id.label1);
vh.tv2 = (TextView)v.findViewById(R.id.label2);
vh.iv = (ImageView)v.findViewById(R.id.folder_icon);
vh.cb = (CheckBox)v.findViewById(R.id.check01);
isChecked[position] = vh.cb.isChecked();
v.setTag(vh);
}
else{
vh = (ViewHolder)v.getTag();
vh.cb.setChecked(isChecked[position]);
}
Files f = files.get(position);
if(f != null){
각 파일 속성
}
vh.cb.setFocusable(false);
vh.cb.setClickable(false);
vh.cb.setOnClickListener(this);
return v;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
CheckBox cb = (CheckBox)v;
if(v.getId() == R.id.check01){
isChecked[Integer.parseInt(v.getTag().toString())] = cb.isChecked();
}
else if(v.getId() == R.id.main_all_check_box){
for(int i = 0; i < files.size(); i++){
if(files.get(i).file_type.equals("f")){
if(adapter2.getItem(i).file_type.equals("f")){
isChecked[i] = all_check.isChecked();
}
}
}
adapter2.notifyDataSetChanged();
}
}
}
으으...조건 이것저것 바꿔가며 해봤지만..아직 해결을 못했습니다...
도대체 어디가 잘못 된 건가요...