본문 바로가기

IT/Android

#2 계산기 만들기 (이벤트 감지자 등록방법)

앞의 내용과 같은 결과가 나오도록 

MainActivity.java에서 이벤트 감지자를 직접 등록하여 구현 해보았습니다.


package com.example.cadmus.a001_calc_method2;

import android.support.v7.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 {

EditText number1, number2;
TextView result;
Button addButton, subtractButton, multiplyButton, divideButton;
int n1, n2;

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

number1 = (EditText)findViewById(R.id.number1);
number2 = (EditText)findViewById(R.id.number2);
result = (TextView)findViewById(R.id.result);

addButton = (Button)findViewById(R.id.addButton);
subtractButton = (Button)findViewById(R.id.subtractBtton);
multiplyButton = (Button)findViewById(R.id.multiplyButton);
divideButton = (Button)findViewById(R.id.devideButton);

addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
n1 = Integer.parseInt(number1.getText().toString());
n2 = Integer.parseInt(number2.getText().toString());

result.setText(Integer.toString(n1 + n2));
}
});

subtractButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
n1 = Integer.parseInt(number1.getText().toString());
n2 = Integer.parseInt(number2.getText().toString());
result.setText(Integer.toString(n1 - n2));
}
});

multiplyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
n1 = Integer.parseInt(number1.getText().toString());
n2 = Integer.parseInt(number2.getText().toString());
result.setText(Integer.toString(n1 * n2));
}
});

divideButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
n1 = Integer.parseInt(number1.getText().toString());
n2 = Integer.parseInt(number2.getText().toString());
result.setText(Integer.toString(n1 / n2));
}
});
}
}


이벤트 감시자를 직접 등록했기 때문에ㅡ  activity_main.xml 에서 onClick 항목이 없어집니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.cadmus.a001_calc_method2.MainActivity">

<EditText
android:id="@+id/number1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:ems="10"
android:hint="첫번째숫자"
android:inputType="textPersonName" />

<EditText
android:id="@+id/number2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/number1"
android:ems="10"
android:hint="두번째 숫자"
android:inputType="textPersonName" />

<Button
android:id="@+id/addButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/number2"
android:text="더하기"
/>

<Button
android:id="@+id/subtractBtton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/number2"
android:layout_toEndOf="@+id/addButton"
android:text="빼기"
/>

<Button
android:id="@+id/multiplyButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/number2"
android:layout_toEndOf="@+id/subtractBtton"
android:text="곱하기"
/>

<Button
android:id="@+id/devideButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/multiplyButton"
android:layout_toEndOf="@+id/multiplyButton"
android:text="나누기"
/>

<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/addButton"
android:textAppearance="@style/TextAppearance.AppCompat.Display1" />

</RelativeLayout>


반응형