어떤 개발을 하던 사용자의 이벤트를 받아서 처리하는 것이 대부분 일 것이다. 처음 안드로이드를 공부하는 중인데… 간단하게 버튼 사용 법에 대해서
샘플 코드를 작성하면서 알아 보겠다.
프로젝트를 생성하면 아래 그림과 같이 생길 것 이다.
[그림 1 - 샘플 프로젝트 구성 내용]
그럼 activity_main.xml 파일은 View를 처리하는 역할을 하고, MainActivity.java는 Controller의 역활을 한다고
생각하면 된다. 그럼 activity_main.xml에서
간단하게 버튼 하나를 올려보자.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/startBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</LinearLayout>
|
[코그 1 - activity_main.xml 소스코드]
버튼(Button) 속성은 대충 보면 어떤걸 의미하지는 알 수 있을 것이다. 따로
설명은 하지 않겠다.
주요하게 id를 지정할 때 "@+id/"로 하는
것은 잘 기억해두자. 안드로이드 같은 경우 ‘@’기호로 ID를 찾기 때문에 “@+id/”는
ID를 추가 한다고 생각하면 될 것이다. 이렇게 정의 하게 되면 이 내용은 R.java파일에 기록이 된다. 그럼 .java파일에서 해당 Object를 찾을 수 있다.
@Override
protected void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// View에 있는 id로 버튼 이벤트를 정의합니다.
Button
startBtn = (Button)findViewById(R.id.startBtn);
//
OnClickListener를 이용해 버튼 이벤트 처리
startBtn.setOnClickListener(new
OnClickListener() {
@Override
public void
onClick(View v) {
// Toast는 메세지창이
잠깐 나왔다 들어가는 것이다.
// 이는 makeText()함수와 show()함수를 이용해 메세지를 보여줄수
있다.
Toast.makeText(getApplicationContext(),
"시작 버튼이 눌렀어요.",
Toast.LENGTH_LONG).show();
}
});
}
|
[소스 2 – MainActivity.java 소스코드]
위 [소스 2]는 View에서
선언한 Button의 인스턴스를 생성한 후 해당 이벤트를 정의하는 코드이다. findViewById 함수를 이용해서 View에서 선언한 Button의 인스턴스를 만든다. 그리고 OnClickListener를 이용해서 버튼의 이벤트를 정의한다. Toast를 이용해서 잠깐 나타났다 사라지는
메시지창을 이용해서 메시지를 간단하게 띄운다. 위 소스를 쓰다 보면
OnClickListener와 Toast를 작성할 때 에러가 날 것이다. 이는 import가 안되서 그러는데 코드를 다 작성한 후 “ctrl + Shift + o(영문)”를 누루면 자동으로 필요한 내용이 import된다. 위 코드 까지 넣고 실행해 보면, 메시지가 잘 뜨는 것을 볼 수 있을 것이다.
여기서 중요한 것 findViewById함수를 이용해 객체 찾아 인스턴스 생성하기, OnClickListener를 이용해 버튼 이벤트 정의하기 정도가 되겠다.