본문 바로가기

Android

[UI] 색상 선택

중복 선택 X









 

 Green button 클릭 (초기)

 Blue button 클릭

 Red button 클릭

1. Green button에 체크 이미지 붙이기

2. prev_btn = Green

1. Blue button에 체크 이미지 붙이기

2. prev_btn 삭제

3. prev_btn = Blue

1. Red button에 체크 이미지 붙이기

2. prev_btn 삭제

3. prev_btn = Red






public class NewCrewFragment extends Fragment {

    public ImageButton common_btn;
    public int prev_btn=0;

    public NewCrewFragment() {
        // empty
    }

    class ColorCheckListener implements View.OnClickListener{
        @Override
        public void onClick(View v) {

            if(prev_btn == 0) { //처음 선택한다면
                prev_btn=v.getId(); //현재 선택된 ID 저장
                common_btn = (ImageButton) v.findViewById(prev_btn); //객체 생성
                common_btn.setImageResource(R.drawable.check_color_round); //체크 이미지 붙이기
            } else { //처음 선택하는 것이 아니면
                switch (prev_btn){ //이전에 선택한 것을 지운다. (같은 이미지 덮어씌우기)
                    case R.id.color_round_y:
                        common_btn.setImageResource(R.drawable.color_round_y); break;
                    case R.id.color_round_b:
                        common_btn.setImageResource(R.drawable.color_round_b); break;
                    case R.id.color_round_g:
                        common_btn.setImageResource(R.drawable.color_round_g); break;
                    case R.id.color_round_v:
                        common_btn.setImageResource(R.drawable.color_round_v); break;
                    case R.id.color_round_r:
                        common_btn.setImageResource(R.drawable.color_round_r); break;
                }
                prev_btn=v.getId();
                common_btn = (ImageButton) v.findViewById(prev_btn);
                common_btn.setImageResource(R.drawable.check_color_round);
            }
        }
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_new_crew, container, false);
        
        /*  If U select 'Color' button...    */
        ColorCheckListener cc_lis = new ColorCheckListener();

        common_btn = (ImageButton) v.findViewById(R.id.color_round_y); //NullPointerExeption을 예방하기위한 default.
        common_btn.setOnClickListener(cc_lis);

        ImageButton y_btn = (ImageButton) v.findViewById(R.id.color_round_y);
        ImageButton b_btn = (ImageButton) v.findViewById(R.id.color_round_b);
        ImageButton g_btn = (ImageButton) v.findViewById(R.id.color_round_g);
        ImageButton v_btn = (ImageButton) v.findViewById(R.id.color_round_v);
        ImageButton r_btn = (ImageButton) v.findViewById(R.id.color_round_r);

        y_btn.setOnClickListener(cc_lis);
        b_btn.setOnClickListener(cc_lis);
        g_btn.setOnClickListener(cc_lis);
        v_btn.setOnClickListener(cc_lis);
        r_btn.setOnClickListener(cc_lis);


        return v;
    }

}