[Android/java] Button Click to show toast text message (버튼 클릭할 때 토스트 메세지 생성하기)
안녕하세요 골드입니다.
오늘은 기본적인 버튼을 생성하고 버튼을 클릭하면 Toast 형식의 메세지가 나오게 하는 방법에 대해서 알아보겠습니다.
1. 새로운 프로젝트를 만들고 XML 파일 수정
안드로이드 스튜디오에서 새로운 프로젝트를 만듭니다.
프로젝트는 Empty Project로 지정하고 확인을 누릅니다.
다른 옵션을 선택하지 않았다면 기본적으로 MainActivity와 activity_main.xml 파일이 하나씩 만들어집니다.
MainActivity 파일은 app/java/com.example.project1(app 고유 이름 폴더)/ 안에 있고,
activity_main.xml 파일은 app/res/layout/ 폴더 안에 위치합니다.
(혹시 파일을 찾지 못하겠다면 파일 정렬이 Android로 설정되어 있는지 확인해주세요.
파일 정렬이 다르게 되어있다면 폴더가 나타나는 모습이 다릅니다.)
여기서 activity_main.xml 파일을 클릭해서 코드를 조금 수정하겠습니다.
왼쪽 아래에 Design 탭과 Text 탭이 있습니다.
Design 탭에서는 왼쪽에 Pallette에서 view들을 드래그 앤 드랍으로 레이아웃을 구성할 수 있습니다. 왼쪽은 화면에서 보여지는 모습이고 오른쪽은 blueprint형태로 화면에는 보이지 않지만 존재하는 view들을 볼 수 있도록 도와줍니다.
Text 탭을 클릭합니다.
아무것도 건드리지 않았다면 TextView 코드가 작성되어 있습니다.
TextView는 말 그대로 Text를 보여주는 view 객체입니다.
TextView에 다양한 속성이 있습니다.
그 중에 text 속성은 string 값을 나타내는 속성입니다.
여러분의 text는 아마 hello world라고 표시되어 있을 것입니다.
저는 이 TextView 태그를 Button 태그로 바꿀 것입니다. text 값도 조금 바꿔보겠습니다.
이렇게 바꿔도 오류가 발생하지 않고 전혀 문제없이 사용할 수 있는
이유는 Button이 TextView를 상속하고 있기 때문입니다.
TextView 기반에 Button 속성을 넣으면 Button이 되는 것입니다.
그렇기 때문에 Button 태그는 TextView의 속성을 그대로 사용할 수 있고, 오류가 발생하지 않습니다.
가상머신(혹은 디바이스)에서 실행해보면 버튼이 나타납니다.
버튼을 누를 수 있지만 아직 어떠한 기능도 없습니다. 정의해주지 않았기 때문입니다.
이제 버튼을 누르면 간단한 메세지가 출력되게 만들어보겠습니다.
아까 작성했던 Button 태그에
android:onClick="BabeButtonClick" 속성을 추가합니다.
이 속성은 버튼을 눌렀을때 BabeButtonClick이라는 메서드를 실행한다는 뜻입니다.
눈치채셨듯이 "" 중간에 들어가는 이름은 메서드 이름 규격에 맞다면 아무거나 가능합니다.
2. MainActivity.java에 메서드 추가하기
MainActivity로 와서 방금 xml에서 사용하겠다고 선언했던 BabeButtonClick 메서드를 작성하겠습니다.
만약 작성하지 않는다면 오류가 나고 앱이 강제종료됩니다.
메서드를 class 안에 작성합니다. 자동완성 기능을 사용하지 않았다면 글씨가 빨갛게 표시되는 경우가 생깁니다.
이 때 글씨 사이에 포인터를 두고 Alt + Enter를 눌러서 import해주면 해결됩니다.
메서드 안에 코드를 한 줄 추가했습니다. Toast라는 메세지 형식입니다.
첫 번째 매개변수는 context객체입니다. 어플리케이션이 관리하는 정보에 접근하도록 하는 객체입니다.
이 코드에서는 MainActivity에 대한 정보를 가리킬 것입니다.
두 번째 매개변수는 text입니다. 어떤 text를 노출시킬 것인가입니다.
세 번째 매개변수는 toast의 지속시간입니다.
이제 가상머신을 사용하여 실행해보겠습니다.
버튼을 누르면 Hello Hello가 출력되는 것을 볼 수 있습니다.
더 자세한 내용은 android 공식 문서에서 확인해주세요.
저 역시 이 곳을 참고하여 글을 작성하였습니다.
https://developer.android.com/guide
여기까지 골드였습니다.
감사합니다.