Horizental guideline을 넣어주고 (55%로 설정함) LinearLayout을 ConstraintLayout 아래로 생성해준다
LinearLayout-vertical
LinearLayout 생성시 전체화면이 꽉차게 지정이 되기때문에
layout_width와 height를 100dp정도로해서 화면에 잘 나타나게 해준다음,
상하좌우의 제약조건을 걸어줌 아래제약조건은 가이드라인에 맞춰준다
그리고 나서 editText, button을 넣어주면 레이아웃안에 차례로 쌓인다.
각 아이디 지정해주고, java폴더에서 기능을 구현해주면 된다!
package com.example.myapplication0509;
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;
import com.example.myapplication0509.databinding.ActivityMain2Binding;
public class MainActivity2 extends AppCompatActivity implements View.OnClickListener {
Button btn_plus,btn_minus,btn_mul,btn_div;
TextView result;
EditText num1, num2;
//바인딩 객체 만들기 -->어플에있는 모든 View에 대한 정보를 저장하고 있음
ActivityMain2Binding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMain2Binding.inflate(getLayoutInflater()); //xml에 있는 모든 정보를 java로 가져온다
//binding 객체는 setContentView 전에 쓰기
setContentView(binding.getRoot()); //R.layout.activity_main2 쓸 필요 없음
/* btn_plus = findViewById(R.id.btn_plus);
btn_minus = findViewById(R.id.btn_minus);
btn_mul = findViewById(R.id.btn_mul);
btn_div = findViewById(R.id.btn_div);
num1 = findViewById(R.id.num1);
num2 = findViewById(R.id.num2);
result = findViewById(R.id.result);*/ // --->findViewById 필요없음
binding.btnPlus.setOnClickListener(this);
binding.btnMinus.setOnClickListener(this);
binding.btnMul.setOnClickListener(this);
binding.btnDiv.setOnClickListener(this);
//binding.___ 자동완성 btn 해주면 id값이 바뀐 것을 볼 수 있다.
}
@Override
public void onClick(View view) {
int _result= 0;
int _num1 = Integer.parseInt(binding.num1.getText().toString());
int _num2 = Integer.parseInt(binding.num2.getText().toString());
if(view.getId()==R.id.btn_plus) {
_result = _num1 + _num2;
} else if(view.getId()==R.id.btn_minus){
_result = _num1 - _num2;
}else if(view.getId()==R.id.btn_mul){
_result = _num1 * _num2;
}else if(view.getId()==R.id.btn_div){
_result = _num1 / _num2;
}
binding.result.setText("연산결과 : " + _result);
}
}
ActivityMain2Binding binding;
binding = ActivityMain2Binding.inflate(getLayoutInflater());
setContentView(R.layout.activity_main2)
가 아닌 setContentView(binding.getRoot());
btn_plus.setOnClickListener(this);
부분이 binding.btnPlus.setOnClickListener(this);
로 바뀐다. 바인딩은 카멜기법으로 변수가 생성된다