마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 버튼 클릭 이벤트 배열 처리 질문드립니다.

0 추천
public class OrderFormActivity extends AppCompatActivity {

    //ICE HOT 버튼
    Button btnIce1;
    Button btnHot1;

    //수량 버튼
    Button btnPlus1;
    Button btnMinus1;

   int count1 = 0;
   TextView countText1 = null;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.orderform);
        setup();

        final int temp[] = {0,0,0,0};


        btnIce1 = (Button) findViewById(R.id.btnIce1);
        btnHot1 = (Button) findViewById(R.id.btnHot1);


        //ice, hot 버튼 클릭 이벤트
        // ice1,hot1
        btnHot1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (temp[0] == 0) {
                    btnIce1.setBackgroundColor(Color.rgb(255, 255, 255));
                    btnIce1.setTextColor(Color.rgb(21, 67, 96));
                    btnHot1.setBackgroundColor(Color.rgb(21, 67, 96));
                    btnHot1.setTextColor(Color.rgb(255, 255, 255));
                    btnIce1.setBackgroundResource(R.drawable.btn_bg_ex);
                    temp[0] = 1;
                }
            }
        });

        btnIce1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (temp[0] == 1) {

                    btnHot1.setBackgroundColor(Color.rgb(255, 255, 255));
                    btnHot1.setTextColor(Color.rgb(21, 67, 96));
                    btnHot1.setBackgroundResource(R.drawable.btn_bg_ex);
                    btnIce1.setBackgroundColor(Color.rgb(21, 67, 96));
                    btnIce1.setTextColor(Color.rgb(255, 255, 255));

                    temp[0] = 0;
                }
            }
        });

 // + , -  버튼 클릭 이벤트. 클릭시 수량 1씩 증가
    private void setup() {
        btnPlus1 = (Button) findViewById(R.id.btnPlus1);
        btnPlus1.setOnClickListener(listener);

        btnMinus1 = (Button) findViewById(R.id.btnMinus1);
        btnMinus1.setOnClickListener(listener);

        countText1 = (TextView)findViewById(R.id.count1);

 View.OnClickListener listener = new View.OnClickListener()
    {
        @Override
        public void onClick(View v) {

            switch (v.getId()) {
                case R.id.btnPlus1 :
                    count1++;
                    if(count1 >= 10)
                        count1 = 10;
                    countText1.setText(""+count1);
                    break;
                case R.id.btnMinus1 :
                    count1--;
                    if(count1<=0)
                        count1 = 0;
                    countText1.setText(""+count1);
                    break;
            }
        }
    };

카페 주문 앱 입니다.

구성은 메뉴 이름  ice 버튼 , hot 버튼 선택,  수량 버튼 +, -  이렇게 메뉴 하나 당 버튼이 4개가 있습니다.

메뉴는 총 4개 입니다. (배열로 처리해야할 버튼은 ice 버튼 4개 , hot버튼 4개, 플러스버튼 4개, 마이너스 버튼4개) 

각 버튼 클릭 이벤트를 배열로 바꿔서 코드를 줄이고 싶은데 어떻게 해야될까요??

 

익명사용자 님이 2019년 3월 19일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...