제가 컬럼 5., 행 6인 그리드뷰를 구현했습니다.
각 그리드뷰 안에는 버튼을 할당해서 총 30개의 버튼을 만들었습니다.
처음에 초기화는 백그라운드컬러를 없애주었고, text도 없어서
바탕화면이 보이는데요
여기에 한개씩 온클릭 된 버튼들의 색깔과 텍스트를 변경해주려고 합니다.
첫번째버튼은 정상적으로 되는데요
두번째 버튼부터는 이상하네요. 첫번째 버튼을 빨간색을 주고 파란색을 파란색 주려고 하면
첫번째버튼도 파란색으로 변합니다.. 로그를 보니 첫번째버튼도 호출이 되어서 파란색으로 변경하는것 같더라구요..
위 그림과 같이 되어버리네요... 모두 바뀌는;;;
아래가 아답터 구현소스인데요.. 뭘 어떻게 바꿔야할지 조언 좀 부탁드리겠습니다..ㅠㅠ
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();
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]에 해당되는 색으로만 모든 버튼이 바뀌네요ㅠㅜ
}
return convertView;
}
}
Button btnname;
}
position값으로 구분 하시면 됩니다