728x90
("안드로이드 스튜디오 :: 앱 만들기 기초 #2 (프로젝트 구성)" 참조)
안드로이드 스튜디오에서 버튼 만드는 방법을 살펴본다.
1. res > layout > activity_main.xml 파일 열기
메인 화면이 될 activity_main.xml파일을 열어 다음과 같이 작성한다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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=".MainActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button //항상 대소문자에 주의한다.
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="버튼1"/>
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
항상 대소문자에 유의하여 작성한다.
2. 버튼에 이름 넣기
만들어진 버튼은 껍데기만 존재할 뿐이다. 버튼이 버튼되게 하려면 기능을 하도록 명령해야 한고 그러기 위해선 다른 객체와 구별하기 위한 이름이 필요하다.
...
<Button //항상 대소문자에 주의한다.
android"@+id/button1" //이름을 지정해준다. 피카츄처럼
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="버튼1"
...
버튼에 ID를 지정해준다. ID는 객체마다 고유하기 때문에 중복될 수 없다. 누가 어떤 일을 할 것인지를 ID를 통해 명령하기 때문에 상당히 중요하다. "가라!" 아니고 "가라! 피카츄!" 라고 하는 것처럼. 각 속성의 순서는 달라져도 상관없다.
3. 자바 파일에 클릭 이벤트 함수 추가
MainActivity.java 파일을 열어 다음과 같이 작성한다.
...
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = findViewById(R.id.button1); //(1)
button1.setOnClickListener(new View.OnClickListener() { //(2)
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "버튼1 클릭", Toast.LENGTH_LONG).show(); //(3)
}
});
}
}
(1) findViewById()를 통해 xml파일에서 작성한 버튼의 ID를 가져온다.
(2) 가져온 버튼에 클릭이벤트 명령을 준다. onClick()를 필수로 오버라이드 해야한다.
(3) 핸드폰에 토스트 메세지를 뿌려준다. (알람 설정하면 "알람이 설정되었습니다" 같은 메세지)
실행 후 버튼을 클릭하면 지정해둔 메세지가 뜨는 것을 볼 수 있다.
[안드로이드 스튜디오 앱 만들기 기초 :: 버튼 만들기]
728x90
반응형
'Android > Java' 카테고리의 다른 글
안드로이드 스튜디오 :: Java :: 알림 만들기(Notification) (0) | 2020.10.13 |
---|---|
안드로이드 스튜디오 :: Java :: Activity(화면) 값 전달받기 (0) | 2020.06.25 |
안드로이드 스튜디오 :: Java :: Activity(화면) 전환하기 (0) | 2020.06.25 |
안드로이드 스튜디오 :: Java :: Activity(화면)간 값 전달하기 (0) | 2020.06.24 |
댓글