- android를 선택한 후 Empty Activity를 선택한다.
- 프로젝트 이름과 경로를 지정해준다. 언어는 Java, Kotlin중에 Kotilin으로 할 것이다.
- 완료를 누르고 기다린다.
✔️안드로이드 태블릿을 직접 연결하여 에뮬레이터 없이 사용할 예정입니다
- 초기화면
- 상단에 초록색 삼각형 버튼(실행 버튼)을 처음 누르면 아래와같이 build가 생성된다.
- MainActivity
확인하기 위한 기본 함수들을 추가한다. 아래 사진처럼 들어가서 검색하면 함수들을 검색해서 불러올 수 있다.
각 함수들이 언제 사용되는지 알아보기 위해 앱을 끄고, 켜고, 재실행을 하면서 로그를 확인한다.
package com.example.myapplication1 import android.content.ContentValues import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } override fun onStart() { super.onStart() Log.i(ContentValues.TAG, "onStart 실행") } override fun onResume() { super.onResume() Log.i(ContentValues.TAG, "onResume 실행") } override fun onRestart() { super.onRestart() Log.i(ContentValues.TAG, "onRestart 실행") } override fun onPause() { super.onPause() Log.i(ContentValues.TAG, "onPause 실행") } override fun onStop() { super.onStop() Log.i(ContentValues.TAG, "onStop 실행") } override fun onDestroy() { super.onDestroy() Log.i(ContentValues.TAG, "onDestroy 실행") } }
- 태블릿 화면
- 우측 상단에 코드와 디자인 원하는 것으로 볼 수 있다.
button을 끌어다가 추가한다.
- 동그라미 모양을 끌어서 위치를 고정시켜야 한다.
- text에는 textSay, button에는 btnSay라는 id를 지정해준다.
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/textSay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnSay" app:layout_constraintTop_toBottomOf="@+id/textSay" app:layout_constraintStart_toStartOf="parent" android:layout_marginTop="60dp" android:layout_marginStart="252dp"/> </androidx.constraintlayout.widget.ConstraintLayout>
버튼을 누르면 textSay 글자 변경, Toast생성, alert창 나옴
package com.example.myapplication1 import android.content.DialogInterface import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.TextView import android.widget.Toast import androidx.appcompat.app.AlertDialog class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val textSay = findViewById<TextView>(R.id.textSay) val btnSay = findViewById<Button>(R.id.btnSay) btnSay.setOnClickListener { textSay.text = "Hello Android!!" //Toast val toast = Toast.makeText(this.applicationContext, "버튼 클릭", Toast.LENGTH_SHORT) toast.show() //이거 안 하면 안 보임 //AlertDialog AlertDialog.Builder(this@MainActivity) .setTitle("welcome") //title setting .setMessage("어서오세요") //message setting .setCancelable(false) //화면을 누르거나 뒤로가기를 눌러도 사라지지 않음, 버튼으로 종료해야 함 .setNeutralButton("닫기", DialogInterface.OnClickListener { dialog, which -> //닫기버튼을 클릭시! }).show() } } }
- 태블릿 화면
=> setContentView(R.layout.activity_main) 대신 setContentView(binding.root) 사용
=> 객체화를 시켜주기 때문에 접근하기 유용함
*build.gradle 추가
아래처럼 추가한 후, sync now를 누른다.
buildFeatures { viewBinding true }
- MainActivity
package com.example.myapplication1 import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import com.example.myapplication1.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { val binding by lazy { ActivityMainBinding.inflate(layoutInflater) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(binding.root) binding.btnSay.setOnClickListener { //버튼은 눌렀을 때 println("btnSay click") binding.textSay.text = "Hello Android!!" //textSay의 문자를 변경한다. } } }
- 태블릿 화면