◆ Event처리 객체 - Event Listener
- 특정 이벤트를 처리하는 인터페이스
- 여러 View에 의해 공유될 수 있으므로 해당 View가 누구인지 전달
◆ Event 처리 방식
- XML로 Event Method 연결
- Listener Interface를 Activity Class에 구현
- Listener Class를 익명 Class로 정의
package com.example.ex_0707;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity3 extends AppCompatActivity {
TextView txt;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
// 1. 내가 사용하고자 하는 view id값 찾아오기!
txt = findViewById(R.id.txt);
btn = findViewById(R.id.btn);
}
// 클릭에 대한 메소드 생성하기
public void btnAction(View view){
// 액션 정의
// btn이 클릭되었을때, txt 영역에 "버튼 클릭!" 문구 띄우기
txt.setText("버튼 클릭!");
}
}
package com.example.ex_0707;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity4 extends AppCompatActivity {
// 0. id값을 저장할 객체 이름 선언!
Button btn_plus, btn_sub, btn_mul, btn_div;
TextView txt_result;
// PlanText를 가져오기 위하여 사용할 수 있는 객체 -> EditText
EditText txt_num1, txt_num2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main4);
// 1. id정보값 가져오기
btn_plus = findViewById(R.id.btn_plus);
btn_sub = findViewById(R.id.btn_sub);
btn_mul = findViewById(R.id.btn_mul);
btn_div = findViewById(R.id.btn_div);
txt_result = findViewById(R.id.txt_result);
txt_num1 = findViewById(R.id.txt_num1);
txt_num2 = findViewById(R.id.txt_num2);
}
// 3. 버튼 클릭시 해당하는 연산 진행하기 -> onClick 속성 사용! -> 메소드를 따로 만들어야 한다!
public void plus(View view){
// 2. 두개의 입력된 숫자값 가져오기 -> getText()
// 입력된 내용을 문자(String)형태로 받아온다 -> toString()
String num1 = txt_num1.getText().toString();
// String num2 = txt_num2.getText().toString();
// 문자 -> 숫자로 변경하기 -> Integer.parsint()
// Log.d("num1", num1);
int n1 = Integer.parseInt(num1);
int n2 = Integer.parseInt(txt_num2.getText()+"");
int result = n1 + n2;
// setText("문자")
txt_result.setText(String.valueOf(result));
}
public void sub(View view){
int result = 0;
// 큰수에서 작은수 빼기!
String num1 = txt_num1.getText().toString();
int n1 = Integer.parseInt(num1);
int n2 = Integer.parseInt(txt_num2.getText()+"");
if(n1>n2){
result = n1 - n2;
}else if(n1<n2){
result = n2 - n1;
}
txt_result.setText(String.valueOf(result));
}
public void mul(View view){
// 곱하기
String num1 = txt_num1.getText().toString();
// String num2 = txt_num2.getText().toString();
int n1 = Integer.parseInt(num1);
int n2 = Integer.parseInt(txt_num2.getText()+"");
int result = n1 * n2;
txt_result.setText(String.valueOf(result));
}
public void div(View view){
// 나누기
String num1 = txt_num1.getText().toString();
// String num2 = txt_num2.getText().toString();
int n1 = Integer.parseInt(num1);
int n2 = Integer.parseInt(txt_num2.getText()+"");
int result = n1 / n2;
txt_result.setText(String.valueOf(result));
}
}
'안드로이드' 카테고리의 다른 글
1~45 랜덤 게임 (0) | 2022.07.12 |
---|---|
주사위 게임 (0) | 2022.07.08 |
Event 예시 (0) | 2022.07.08 |
레이아웃(Layout) (0) | 2022.07.07 |
안드로이드 개념 (0) | 2022.07.06 |