728x90
반응형

※이 글은 강좌가 아니라 필자가 유튜브로 들은 강의 내용을 이해한대로, 정리되지 않은 채 적는 글입니다

www.youtube.com/playlist?list=PLRx0vPvlEmdB6sCgj_jubp8KPb1ni0VOC

 

똑같이 Empty Activity로 새로운 프로젝트를 생성한다

 

자세한 설명은 영상에 있으니까 뭐...

영상과 똑같이 대충 입력하는 곳, 버튼, 결과를 만들고 각각 ID를 할당해준다

 

그리고 버튼클릭에 대한 함수 작성

//MainAcitivity.java

package com.example.tutorial2;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

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

    public void addClick(View v)
    {
        EditText number1 = (EditText)findViewById(R.id.number1);
        EditText number2 = (EditText)findViewById(R.id.number2);
        TextView result = (TextView)findViewById(R.id.result);

        int n1 = Integer.parseInt(number1.getText().toString());
        int n2 = Integer.parseInt(number2.getText().toString());

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

    public void subtractClick(View v)
    {
        EditText number1 = (EditText)findViewById(R.id.number1);
        EditText number2 = (EditText)findViewById(R.id.number2);
        TextView result = (TextView)findViewById(R.id.result);

        int n1 = Integer.parseInt(number1.getText().toString());
        int n2 = Integer.parseInt(number2.getText().toString());

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

    public void multiplyClick(View v)
    {
        EditText number1 = (EditText)findViewById(R.id.number1);
        EditText number2 = (EditText)findViewById(R.id.number2);
        TextView result = (TextView)findViewById(R.id.result);

        int n1 = Integer.parseInt(number1.getText().toString());
        int n2 = Integer.parseInt(number2.getText().toString());

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

    public void divideClick(View v)
    {
        EditText number1 = (EditText)findViewById(R.id.number1);
        EditText number2 = (EditText)findViewById(R.id.number2);
        TextView result = (TextView)findViewById(R.id.result);

        int n1 = Integer.parseInt(number1.getText().toString());
        int n2 = Integer.parseInt(number2.getText().toString());

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

java를 안해봐서 왜 저따구로 하는건지 잘 모르겠다

 

다음은 작성한 클릭함수를 버튼에 넣어준다

우측 상단에 Design 옆 Code를 눌러 수정할 수 있다

//activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".MainActivity">

    <EditText
        android:id="@+id/number1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="첫 번째 숫자"
        android:inputType="textPersonName"
        tools:layout_editor_absoluteX="20dp"
        tools:layout_editor_absoluteY="70dp" />

    <EditText
        android:id="@+id/number2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="두 번째 숫자"
        android:inputType="textPersonName"
        tools:layout_editor_absoluteX="20dp"
        tools:layout_editor_absoluteY="115dp" />

    <Button
        android:id="@+id/addButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="더하기"
        tools:layout_editor_absoluteX="20dp"
        tools:layout_editor_absoluteY="160dp"
        android:onClick="addClick"/>

    <Button
        android:id="@+id/subtractButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="빼기"
        tools:layout_editor_absoluteX="114dp"
        tools:layout_editor_absoluteY="160dp"
        android:onClick="subtractClick"/>

    <Button
        android:id="@+id/mutiplyButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="곱하기"
        tools:layout_editor_absoluteX="208dp"
        tools:layout_editor_absoluteY="160dp"
        android:onClick="multiplyClick"/>

    <Button
        android:id="@+id/divideButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="나누기"
        tools:layout_editor_absoluteX="302dp"
        tools:layout_editor_absoluteY="160dp"
        android:onClick="divideClick"/>

    <TextView
        android:id="@+id/result"
        android:layout_width="381dp"
        android:layout_height="58dp"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1"
        tools:layout_editor_absoluteX="20dp"
        tools:layout_editor_absoluteY="208dp" />

    <androidx.constraintlayout.helper.widget.Flow
        android:id="@+id/flow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_begin="20dp" />

    <androidx.constraintlayout.widget.Barrier
        android:id="@+id/barrier2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:barrierDirection="left"
        app:constraint_referenced_ids="result" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_begin="20dp" />

    <androidx.constraintlayout.widget.Group
        android:id="@+id/group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</androidx.constraintlayout.widget.ConstraintLayout>

실행해보자

 

영상과는 다르게 에러가 무진장 많이 떴다

cannot find symbol class View:

cannot find symbol class EditText:

 

찾아보니 저걸 import해주어야 한다고 한다

import android.view.View와 import android.widget.EditText 추가

 

실행은 정상적으로 된것 같다

근데 레이아웃이 많이 아파보인다...

영상댓글에도 있던데 안드로이드 스튜디오의 디자인하는 부분이 바뀌어서 예전과는 많이 다르다고 한다

 

일단 오류문구에 contraint가 안되어 있다고 하길래 일단 대충 뭔가 추가해봤다

 

고쳐진것 같지만 레이아웃이 그래도 조금 이상하다

그래도 일단 작동은 되는듯 하다

근데 키보드는 왜 또 이럴까...

 

일단 안드로이드 스튜디오 재실행부터 해봤다

안되네

뭐가문제지....

 

일단 컴퓨터 키보드로 입력은 된다

핸드폰에 USB 케이블로 연결해서 시도해보자

핸드폰에 연결하려면 개발자 옵션을 활성화하고 USB 디버깅을 허용해야 한다

 

일단 핸드폰에서 잘 되는걸 보니 AVD 문제인듯 하다

해결은 미래의 내가 어떻게든 하겠지