제가 컬럼 5., 행 6인 그리드뷰를 구현했습니다.

각 그리드뷰 안에는 버튼을 할당해서 총 30개의 버튼을 만들었습니다.

처음에 초기화는 백그라운드컬러를 없애주었고, text도 없어서

바탕화면이 보이는데요

 

여기에 한개씩 온클릭 된 버튼들의 색깔과 텍스트를 변경해주려고 합니다.

첫번째버튼은 정상적으로 되는데요

두번째 버튼부터는 이상하네요. 첫번째 버튼을 빨간색을 주고 파란색을 파란색 주려고 하면

첫번째버튼도 파란색으로 변합니다.. 로그를 보니 첫번째버튼도 호출이 되어서 파란색으로 변경하는것 같더라구요..

 

 

 

 1234.jpg

 

 위 그림과 같이 되어버리네요... 모두 바뀌는;;;

아래가 아답터 구현소스인데요.. 뭘 어떻게 바꿔야할지 조언 좀 부탁드리겠습니다..ㅠㅠ

 

 

 

 

class GridSetAdapter extends BaseAdapter{
private ArrayList<GridSet> object;

public GridSetAdapter(ArrayList<GridSet> object){
super();
this.object=object;
}


public int getCount() {
return object.size();
}
public Object getItem(int arg0) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if(convertView==null){
LayoutInflater inflater=LayoutInflater.from(Testp2Activity.this);
convertView=inflater.inflate(R.layout.sub,parent,false);
holder=new ViewHolder();

holder.btnname=(Button)convertView.findViewById(R.id.btn);
convertView.setTag(holder);
}
else
holder=(ViewHolder)convertView.getTag();

holder.btnname.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Log.d("", "온클릭 리스너 실행");
i=position;
showAlertDialog(v);

}
});

String name=object.get(position).getName();
     
if(name.equals("")){
holder.btnname.setBackgroundColor(00000000);
}

else{
holder.btnname.setBackgroundColor(col2[i]); //여기 col2[i]에 해당되는 색으로만 모든 버튼이 바뀌네요ㅠㅜ
}
holder.btnname.setText(name);

return convertView;

}
}
  static class ViewHolder{
   Button btnname;
  }
 
 
 
 
 
궁금한게 있는데요..
뷰홀더안에 버튼을 한개만 선언해서 30개를 만들긴했는데, 이 버튼 저 버튼을 어떻게 구별하죠????