본문 바로가기
HELLO_WORLD/안드로이드_Android

[초보강좌] 안드로이드 버튼과 텍스트 출력

by 해피한 김과자블루스웨터 2018. 8. 22.









안드로이드 초보 강좌




버튼과 텍스트 출력




안녕하세요. 안드로이드 초보 강좌 시간 입니다. 오늘은 개발시 가장 많이 쓰인다고 봐도 무방한 버튼 위젯과 그에 따른 동작을 구현해 보겠습니다. 매우 간단한 예제 이지만 매우 중요한 부분 이므로 한번 만들어 보셔도 좋을 것 같네요.



오늘 알고 가야 할 부분!



- 이벤트 발생과 그에 따른 동작을 이해하고 구현한다

- 유저가 버튼을 클릭하는 동작이 이벤트 발생 이고

- 로그를 찍고 토스트를 통해 텍스트를 출력하는 것이 그에따른 동작이다.

 


우선은 안드로이드 스튜디오를 켜주시고요. 액티비티를 하나 만들어 줍니다. 아래의 스크린샷을 참고 하시죠.





(원본보기 클릭)



원하는 이름으로 만들어주시구요. 아. 안드로이드의 경우 카멜... 명명법을 따르고 있으니 참고 하시구요.

그게 뭐냐구요? 일명 낙타명명법으로써... 낙타의 등과 같은 느낌의.... 자 설명 보시죠.



" 카멜 표기법(Camel Case)
여러 단어를 연달아 사용할 때 각 단어의 첫 글자를 대문자로 적되, 맨 앞에 오는 글자는 소문자로 표기하는 것이다. 낙타의 등에 있는 혹과 같다고 하여 카멜(Camel) 표기법이라고 부른다. 예로는 camelVariable과 같은 식으로 쓴다. Java의 권장 표기법이다. "


나무위키인용




액티비티를 만들면 레이아웃 파일(XML)과 JAVA 파일이 생성됩니다. 그 말은 즉. 둘이 짝이란 말이죠. 둘은 전우조 입니다. 서로 떨어지면 안되구요. 항상 연결되 있습니다. 어떤걸 먼저 해도 되지만 저는 레이아웃을 먼저 정의 하고 자바파일을 구현합니다. 왔다갔다 하면서 수정을 해주기도 하구요. 자신에 맞는 스타일로 구현하시면 되겠습니다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Step1ButtonActivity">
 
    <Button
        android:id="@+id/step1_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="Button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
cs



자 레이아웃에 보시면 Button 을 만들어 주었습니다. 저걸 언제 다 타이핑 하냐... 싶지만 초보 때는 많이 따라 쳐보시고 많이 만들어 보는게 중요한 것 같습니다. 귀찮으면 복/붙 신공으로 구현하시면 됩니다. 여기서 button 에 id 값을 잘 봐두셔야 합니다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Step1ButtonActivity extends AppCompatActivity {
 
    private Button step1btn;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_step1_button);
 
        //layout에 정의한 step1_btn을 가져와서 객체를 만든다.
        step1btn = findViewById(R.id.step1_btn);
        //그 객체에 new View.OnClickListener 를 통해 어너니머스 클래스를 만들며
        //그것을 등록해준다.
        step1btn.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                //onClick을 오버라이드하여
                // onclick 시점의 이벤트를 정의한다.
                Log.i("STEP1-TAG","button click!");
                Toast.makeText(Step1ButtonActivity.this,
                        "button click!",Toast.LENGTH_LONG).show();
 
            }
        });
    }
}
cs



자바 파일로 와서 버튼 객체를 만들어 줍시다. 네이밍은 알아서 해주시구요. 저같은 경우 step1btn이 버튼 변수 입니다. 11 라인에서 findViewById 메서드를 통해 step1_btn 와 연결해 줍니다. 그리고 나서 setOnClickListener 를 통해 클릭시 일어나는 이벤트를 정의해 주시면 됩니다.  new View.OnClickListener 는 익명클래스 인데요. 아마 이런 방식이 생소하실 수 도 있습니다. 안드로이드 개발시 자바를 사용한다면 이런 익명클래스 구조는 필수로 자주 사용되므로 다시 공부하셔도 좋고, 눈에 익히 셔야 합니다. 모르겠다 싶으시면 그냥 저렇게 쓰는구나 하고 우선 넘어가 봅시다.


이벤트 구현은 Log.i 를 통해 안드로이드 스튜디오내에 콘솔에 한번 정보를 출력해보겠습니다. 그리고 나서 Toast 를 통해 화면에도 출력해 봅니다! 이게 전부 입니다. 간단하죠? 이러한 이벤트 구조에 익숙해 지셔야 앱을 만들수 있습니다^^ 오늘은 간단한 예제를 통해 안드로이드의 이벤트 구현 방식을 공부해 봤습니다.  처음에는 어렵게 느껴지지만 계속 타이밍 하고 외우기도 하고.. 하다보면 답이 나오는것 같습니다. 다들 화이팅 하세요~


 





댓글0