group_detail.xml 그리드 뷰가 선언된 레이아웃
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
>
<GridView
android:id="@+id/group_grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="100dp"
android:horizontalSpacing="10dp"
android:numColumns="2"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" >
</GridView>
</LinearLayout>
group_grid_view.xml 그리드뷰에 넣을 버튼
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/group_grid_btn"
android:layout_width="200px"
android:layout_height="90px"
android:layout_gravity="center"
/>
</LinearLayout>
Activity에서
BtnAdapter adapter = new BtnAdapter(getApplicationContext(), R.layout.group_grid_view, btnName);
GridView gv = (GridView)findViewById(R.id.group_grid);
gv.setAdapter(adapter);
객체화 해주고 adapter 걸어줬습니다.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if(convertView == null)
convertView = inf.inflate(layout, null);
Button btn = (Button)convertView.findViewById(R.id.group_grid_btn);
btn.setBackgroundResource(btnName[position]);
btn.setTag(position);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SoundManager.getInstance().soundEffectPlay();
if(!btnflag){
v.setSelected(true);
btnflag = true;
}else{
v.setSelected(false);
btnflag = false;
}
}
});
return convertView;
}
버튼이 총 20개 생성되는데요 배열에 이미지를 담아서.
각버튼 클릭할때마다 selector로 이미지 바뀌고 라디오 버튼처럼 중복 클릭이 안되게
예를 들면 a,b 버튼 이있는데
a클릭(이미지바뀜) b그대로
b클릭(이미지 바뀜) a(이미지 원래대로)
이런식으로요
아직 안드로이드 초보라서 많은 도움 주시면 감사하겠습니다.