Android 애플리케이션 개발 시작 (버튼 배치 및 이벤트 설정)
전제
다음 페이지를 참조하여 가장 빠른 HelloWorld 애플리케이션 만들기이 종료되었습니다.
1) HelloWorld 프로젝트 시작
마지막으로 만든 프로젝트를 시작합니다.
2) activity_main.xml 열기
app/src/main/res/layout/activity_main.xml
을 두 번 클릭합니다.애플리케이션은 최소한 하나의 Activity(액티비티)를 가진다. 사용자 인터페이스의 한 화면. Activity 아래에는 화면의 구성 요소인 컴포넌트를 배치한다. 기동 직후는 Activity 의 중앙에 "Hello World!"라고 쓰여진 TextView 컴퍼넌트가 배치되어 있다. 이번에는 이것이 불필요하므로 클릭 Delete 키를 눌러 삭제. 덧붙여서 Activity 를 구성하는 컴퍼넌트는 계층 구조로 중첩할 수 있다. 계층 구조가 현재 어떻게 되어 있는지를 확인하려면 왼쪽 옆에 있는 컴포넌트 트리를 보면 된다. 방금 TextView 를 삭제했기 때문에, ContraintLayout 라고 불리는 것 밖에 보이지 않는다. 3) Button 구성 요소 배치 왼쪽 상단의 팔레트 열에서 Button 구성 요소를 Activity 중앙에 끌어옵니다. 드래그 후는 다음과 같은 상태로 되어 있다. 4) 현재 상태를 확인하기 위해 실행 여기서 일단 실행해 보자. 중앙에 배치 한 버튼이 왼쪽 상단에 배치됩니다. 이쪽의 레이아웃 무너짐을 해소해 본다. ConstraintLayout 를 사용하는 경우에는, 그 위에 배치하는 컴퍼넌트에 다소 속성의 설정을 추가할 필요가 있다. 5) 텍스트 탭에서 버튼의 속성을 추가 화면 아래쪽에 「디자인」과 「텍스트」라고 하는 탭이 있으므로, 「텍스트」클릭한다. Activity의 레이아웃 정보는 XML로 관리되고 있는 것을 알 수 있다. 다음과 같이 내용을 다시 쓰면 중앙에 배치됩니다. <?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="com.genzouw.helloworld.MainActivity"> <버튼 android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout> 다음 4가지 속성이 추가될 것입니다. app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" 6) 현재 상태를 확인하기 위해 실행 다시 실행해 보자. 버튼의 배치가 수정되어 있으면 OK. 시험에 탭해 보면 버튼의 색이 약간 바뀌어 눌려진 것을 알 수 있도록 되어 있다. 현시점에서는 아무것도 일어나지 않기 때문에, 이벤트를 할당해 본다. 7) 클릭 이벤트 할당 MainActivity.java를 열고 MainActivity#onCreate() 메소드에 다음과 같은 처리를 추가한다. 이전에 Activity 위에 배치한 Button을 취득해, 클릭 리스너를 등록한다. 일단 onClick() 안에서 로그 출력해 본다. package com.genzouw.helloworld; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { @Override protected void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); Button button = this.findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Log.d("debug", "여기 왔어!"); } }); } } 다시 시작하고 버튼을 누르십시오. 에뮬레이터에서는 아무 일도 일어나지 않았지만 Android Studio Logcat에는 로그가 출력됩니다. 8) 대화상자 표시 마지막으로 이벤트를 다시 작성하여 메시지 대화 상자를 표시합니다. MainActivity.java package com.genzouw.helloworld; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { @Override protected void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); Button button = this.findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext()); 빌더 .setTitle(R.string.dialog_title) .setMessage(R.string.dialog_message) .show(); } }); } } 메세지 다이얼로그에는 타이틀과 메세지를 설정하고 있습니다만, 이쪽의 문언은 res/values/strings.xml 에 등록해 할 필요가 있다. strings.xml <resources> <string name="app_name">Hello World</string> <string name="dialog_title">좋아요</string> <string name="dialog_message">메시지입니다</string> </resources> 이제 버튼을 누르면 메시지 대화 상자가 나타납니다.
Reference
이 문제에 관하여(Android 애플리케이션 개발 시작 (버튼 배치 및 이벤트 설정)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/genzouw/items/412b0c91ce9566586c7f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)