베짱이와 노는 개미

안드로이드 앱 프로그래밍#3-액티비티 본문

안드로이드 앱 프로그래밍

안드로이드 앱 프로그래밍#3-액티비티

jsistop16 2021. 7. 25. 15:04

안드로이드 앱은 크게 두가지로 나눌 수 있다고 했다.

디자인과 액티비티이다

 

그중 오늘은 액티비티에 대해서 살짝 알아볼텐데

 

액티비티에는 굉장히 많은 종류가 있기 때문에 오늘 그것을 다 알아보는것은 힘들것 같아서

 

간단하게 어떤것인지만 설명해보겠다.

 

먼저 linear layout으로 설정한 후에 버튼 2개를 만들어 보았다.

 

<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="onButton1Clicked"
android:text="A" />

<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="onButton2Clicked"
android:text="B" />

 

일단 두개의 버튼에서 처음보는게 몇가지 보인다.

 

layout_weight라는 것과 onClick이라는 것이다.

 

layout_weight를 먼저 설명하자면 두 버튼사이의 비율을 의미한다고 보면 된다.

 

두 버튼에서 layout_weight값이 모두 1로 설정되어있다.

 

그렇다면 비율은 1:1이라는 것이다.

 

이때 중요한것은 width를 1:1비율로 한다는것이기때문에 width값은 0으로 설정해줘야한다는것이다

 

width값을 wrap_content나 match_parent로 해주면 1:1비율이 정확히 안맞을수있다.

 

반대로 weight로 비율을 맞추려고 하는게 width가 아닌 height 라면 height값을 0dp로 해주어야한다!!

 

그래서 UI를 보자면

 

이런식으로 같은 비율만큼 좌우 대칭적으로 들어가게 된다

 

만약 weight를 1과 2로 한다면 버튼B가 2배의 비율로 들어가게 된다.

 

이런식으로 된다.

 

간단하게 layout_weight속성을 알아보았다.

 

본론으로 돌아와서 onClick을 보겠다.(액티비티와 관련된 속성이다.)

 

먼저 버튼1에서 onClick="onButtonClicked1"이라고 되어있다.

 

그럼 onButtonClicked1이 무엇인가

 

바로 java코드에서 선언되어있는 메소드이다.

 

xml탭 옆에있는 java탭을 눌러보면 무언가 생성되어있을것이다.

 

<java 코드>

package com.example.relativelayout;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

     @Override
     protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     }
  
     public void onButton1Clicked(View v){
     Toast.makeText(getApplicationContext(),"Wrong!!", Toast.LENGTH_LONG).show();
     }

     public void onButton2Clicked(View v){
     Toast.makeText(getApplicationContext(),"Congraturation!! Correct!!", Toast.LENGTH_LONG).show();
     }
}

 

onButton1Clicked 메소드를 보면 매개변수 v가 선언되어있고 자료형은 View로 받은것이다.

 

다시말해서 자료형이 View인 매개변수 v를 받는 메소드(함수) onButton1Clicked이 생성된것이다.

 

그럼 그안에있는 문장을 보면 Toast.~ 로 시작하는데

 

자바 명령어중에 안드로이드 액티비티를 나타내는 명령어는 이렇게 음식이름에서 따온게 많다고 한다.

 

우리가 토스트기를 사용하면 빵이 다 구워지면 자동으로 튀어 나오지 않는가?

 

그것과 비슷한 기능이다.

 

버튼을 눌렀을때 Wrong!!이라는 문구가 UI밑에 떴다가 사라질것이다.

 

반면 버튼 2번을 눌렀을때는(메소드 onButton2Clicked가 호출되겠지?)

 

Congraturation!! Correct!! 가 떴다가 사라진다

 

이런기능은 좋아요버튼, 예약버튼 등등 많은 기능을 구현할때 사용될것이다.

 

실제로 한번 보면 

 

버튼A를 눌렀을때의 화면이다

 

밑에 Wrong!!이 보이면 성공이다!!

 

이상으로 오늘은 간단하게 액티비티중에 onClick 기능을 본것이다

 

터치했을때의 기능인것 만큼 정말 많이 쓰이는 기능이므로 코드는 외우다시피 하면 될것같다.

 

굿럭