개발자 승학

안드로이드 스튜디오 버튼 클릭 이벤트 본문

it/안드로이드(android studio)

안드로이드 스튜디오 버튼 클릭 이벤트

유승학 2018. 5. 18. 01:44

버튼을 클릭하여 어떠한 이벤트를 하는 방법을 알려드릴려고 합니다.


예제로 버튼을 클릭하여 텍스트가 바뀌는 간단한 예제입니다.



[activity_main.xml]

 <TextView

        android:id="@+id/textView"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="버튼 클릭전"

        app:layout_constraintBottom_toBottomOf="parent"

        app:layout_constraintLeft_toLeftOf="parent"

        app:layout_constraintRight_toRightOf="parent"

        app:layout_constraintTop_toTopOf="parent" />


    <Button

        android:id="@+id/btn"

        android:layout_width="100dp"

        android:layout_height="100dp"

        android:text="휘리릭 버튼"/>



레이아웃을 버튼과 텍스트뷰 두개로 구성합니다.

TextView의 아이디와 Button의 아이디를 정의해야합니다.

알기 쉽게 textView와 btn으로 아이디를 정했습니당



[MainActivity.java]

package com.example.ysh.myapplication;


import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;


public class MainActivity extends AppCompatActivity {


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        final TextView textView = findViewById(R.id.textView);

        Button btn = findViewById(R.id.btn);


        btn.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                textView.setText("버튼 클릭후 글자가 변경!!!!");

            }

        });

    }

}


다음은 자바 코드입니다.


onCreate()에 TextView와 Button에 대한 정의를 합니다.

최근에 안드로이드 스튜디오가 되어서

해당 위젯에 맞는 캐스팅을 해줘야 했는데 이제는 필요가 없습니다.


원래는


final TextView textView = findViewById(R.id.textView);    --->    final TextView textView = (TextView) findViewById(R.id.textView);

Button btn = findViewById(R.id.btn);    --->    Button btn = (Button) findViewById(R.id.btn);


위 처럼 캐스팅을 해줘야 했습니다.


그다음 버튼클릭 이벤트 입니다.

btn.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                textView.setText("버튼 클릭후 글자가 변경!!!!");

            }

});


btn.serOnClickListener에 onClick메소드를 정의해줘야하는데

무조건 @Override를 해줘야합니다.


매우 간단하죵??


아래 사진은 결과입니다.


[NOX실행결과]


이 처럼 버튼으로 간단하게 텍스트 변경을 해봤습니다.

궁금하신점은 댓글달아주세요.

Comments