-
안드로이드 스튜디오: 여러 버튼 하나로 처리하기 onClick method안드로이드 스튜디오 2020. 9. 10. 13:47
종종 비슷한 기능을 하는 버튼 여러개를 사용해야 할 때가 있다.
예를 들어 더하기, 빼기, 곱하기, 나누기를 수행하는 간단한 계산기가 있다고 해보자
더하기 버튼, 빼기 버튼, 곱하기 버튼, 나누기 버튼은 연산 과정만 다를 뿐 유사한 기능을 한다.
그래서 각 버튼에 대해서 오바라이드하기 보다는
onClick 메소드와 switch case문을 이용해 코드의 양을 줄일 수 있다.
밑에는 간단한 계산기 예제
package org.techtown.mypractice; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { Button button1; //더하기 Button button2; //빼기 Button button3; //곱하기 Button button4; //나누기 EditText editText1; //숫자1 EditText editText2; //숫자2 TextView textResult; //결과값 Button.OnClickListener clickListener; int num1, num2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setTitle("계산기"); button1 = findViewById(R.id.button_plus); button2 = findViewById(R.id.button_minus); button3 = findViewById(R.id.button_multi); button4 = findViewById(R.id.button_divide); editText1 = findViewById(R.id.edit_text1); editText2 = findViewById(R.id.edit_text2); textResult = findViewById(R.id.result); clickListener = new Button.OnClickListener() { @Override public void onClick(View view) { num1 = Integer.parseInt(editText1.getText().toString()); num2 = Integer.parseInt(editText2.getText().toString()); switch (view.getId()) { case R.id.button_plus: textResult.setText("계산결과: " + (num1 + num2)); break; case R.id.button_minus: textResult.setText("계산결과: " + (num1 - num2)); break; case R.id.button_multi: textResult.setText("계산결과: " + (num1 * num2)); break; case R.id.button_divide: textResult.setText("계산결과: " + (num1 / num2)); break; } } }; button1.setOnClickListener(clickListener); button2.setOnClickListener(clickListener); button3.setOnClickListener(clickListener); button4.setOnClickListener(clickListener); } }
반응형'안드로이드 스튜디오' 카테고리의 다른 글
안드로이드: xml파일 만들어서 사용하기 (대화상자, 토스트메시지 커스텀) (0) 2020.09.22 안드로이드: 파일 입출력을 통해 간단한 일기장을 만들어보자! (0) 2020.09.22 안드로이드 스튜디오 Video 앨범 만들고 Video를 실행해보자 (2) (0) 2020.05.23 안드로이드 스튜디오 유용한 단축키! 알아보자! (1) 2020.05.23 안드로이드 스튜디오 Video 앨범 만들고 Video를 실행해보자 (1) (2) 2020.05.22