버튼 추가하기
간단하게 버튼을 추가해 보자. 버튼은 activity_main.xml 화면 좌측에 있는 Palette에 위치해있다. 드래그 해서 배치하고 싶은 곳에 배치를 한다. 버튼의 속성 변경은 오른쪽 Attribute에서 할 수 있으며, 버튼의 글은 text로 변경할 수 있고, 이벤트 등록은 onClick속성에 추가할 수 있다. 이벤트 처리 함수는 자바파일로 정의해준다.
Toast를 사용해 메세지 띄우기
간단한 메세지를 띄워보자 Toast를 사용하면 화면에 잠시 보였다 없어지는 메세지를 구현할 수 있다.
public void onButtonClick(View v){
// Toast.LENGTH_SHORT : 화면에 보여지는 시간이 2초이다
// Toast.LENGTH_LONG : 화면에 보여지는 시간이 4초이다.
Toast.makeText(this, "Click test button",Toast.LENGTH_SHORT).show();
Toast.makeText(this, "Hello World", Toast.LENGTH_LONG).show();
}
Toast의 makeText함수는 메세지를 띄우는 static 메소드이다. 총 세가지의 인자를 입력받는다.
- 현재 프로세스의 Context정보
- Toast메세지로 사용자에게 보여줄 String 혹은 문자열 리소스 ID를 정의해 놓은 다음 리소스 ID를 인자로 넘겨줄 수 있다.
- 세번쨰는 메세지가 유지되는 시간이다. int형 타입을 인자로 받지만, 정수값을 전달할 수 없고, 아래 두가지 Toast의 static 멤버변수중 하나를 넘겨주어야 한다
- Toast.LENGTH_SHORT : 화면에 보여지는 시간 2초
- Toast.LENGTH_LONG : 화면에 보여지는 시간 4초
이벤트 처리기를 버튼에 등록해 주어야 한다. Attribute의 onClick에서 지정해줄 수 있다.
위 예제에는 총 두개의 makeText()메소드를 호출했다. 이렇게 하고 실행을 하면 첫번째 makeText()메소드가 실행되고, 다음 두번째 makeText()가 순차적으로 처리된다. 이제 애뮬레이터에서 실행을 해보자
Intent를 사용해서 특정 기능 실행하기
Intent는 앱을 구성하는 화면을 새로 띄우거나 화면간에 데이터를 전환하도록 도와준다. 우선 이번에는 간단하게 이런게 있구나 정도만 보고 넘어간다. 우선 버튼 두개를 새로 생성한다. 하나는 네이버에 접속하는것, 하나는 전화를 거는 버튼을 만든다. 만약 Attribute에 오른쪽과 같은 에러가 난다면, 레이아웃의 하얀 점을 다른 수직 / 수평관계에 두고자 하는 버튼 레이아웃과 이어주면 해결된다.
코드는 아래와 같이 작성해 주고, 각 버튼에 이벤트 처리 함수를 onClick속성에 부여해준다.
public void onButtonClick2(View v){
Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://m.naver.com"));
startActivity(myIntent);
}
public void onButtonClick3(View v){
Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("tel:010-0000-1000"));
startActivity(myIntent);
}
최종적으로 애뮬레이터를 실행하면 아래와 같이 나오는것을 볼 수 있다.
이제 Go to naver, make a call을 각각 클릭해보면, Go to naver는 Chrome에서 네이버를 열고, Make a Call은 전화 앱에서 지정한 전화번호를 자동완성해주는것을 볼 수 있다.
이와 같이 Intent는 다른 앱을 띄우거나 화면간에 데이터를 전달할 수 있도록 도와준다.
'Android' 카테고리의 다른 글
[Android] 텍스트를 클립보드에 복사하기 (0) | 2022.03.27 |
---|---|
[Android] Table Layout (0) | 2022.03.26 |
[Android] View의 Margin과 Padding (0) | 2022.03.26 |
[Android] 뷰 정렬하기 (0) | 2022.03.26 |
[Android] 소스코드를 이용해서 버튼 생성하기 (0) | 2022.03.23 |