안드로이드 스튜디오 버튼 클릭 이벤트
버튼을 클릭하여 어떠한 이벤트를 하는 방법을 알려드릴려고 합니다.
예제로 버튼을 클릭하여 텍스트가 바뀌는 간단한 예제입니다.
[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실행결과]
이 처럼 버튼으로 간단하게 텍스트 변경을 해봤습니다.
궁금하신점은 댓글달아주세요.