물먹는산세베리아

[4-2] 위젯: Button, EditText 본문

OS/Android

[4-2] 위젯: Button, EditText

suntall 2021. 10. 11. 13:01

1. activity_main.xml에서 레이아웃을 LinearLayout으로 변경

2. 세로로 구성할 거라서 android:orientation="vertical" 추가

 

간단한 계산기 만들기


ⓛ 숫자 넣을 공간 만들기

Edit2도 만들기

 

 

② 더하기, 빼기, 곱하기, 나누기 버튼 만들기

나머지 연산 버튼도 만들기 BtnSub ...

 

 

③ 계산 결과 text 만들기

 

 

자바 연동


④ 변수 선언

 

⑤ id로 연결, 값 가져오기(getText()), onTouchLinster()

 

나머지 연산은 생략

 

숫자1, 숫자2에 값 넣고 더하기 누르면 계산 결과 나옴

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/Edit1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:hint="숫자1"
        />

    <EditText
        android:id="@+id/Edit2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:hint="숫자2"
        />

    <Button
        android:id="@+id/BtnAdd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="더하기"
        />

    <Button
        android:id="@+id/BtSub"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="빼기"
        />

    <Button
        android:id="@+id/BtnMul"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="곱하기"
        />

    <Button
        android:id="@+id/BtnDiv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="나누기"
        />

    <TextView
        android:id="@+id/TextResult"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:textSize="30sp"
        android:textColor="#ff0000"
        android:text="계산 결과 :"
        />

</LinearLayout>

 

MainActivity.Java

package com.android.project4_1;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    EditText edit1, edit2;
    Button btnAdd, btnSub, btnMul, btnDiv;
    TextView textResult;
    String num1, num2;
    Integer result;

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

        edit1 = findViewById(R.id.Edit1);
        edit2 = findViewById(R.id.Edit2);

        btnAdd = findViewById(R.id.BtnAdd);

        textResult = findViewById(R.id.TextResult);

        btnAdd.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();

                result = Integer.parseInt(num1) + Integer.parseInt(num2); //string-> int
                textResult.setText("계산 결과 : " + result.toString());//int-> string
                return false;
            }
        });

    }
}

더하기 기능만 만듦 나머지는 더하기랑 똑같이 만들어서 넣으면 됨