Notice
Recent Posts
Recent Comments
Link
투케이2K
112. (AndroidStudio/android/kotlin) 코틀린 파일 생성 및 코틀린 기본 구조 코드 작성 실시 본문
/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : kotlin
/* =========================== */
/* =========================== */
[소스 코드]
[클래스 관련]
<AndroidManifest.xml 파일>
<activity
android:name=".A_Test_Kotlin"
android:screenOrientation="portrait"/>
<A_Test_Kotlin 파일>
package kr.co.two2k.manager
import android.content.Context
import android.os.Bundle
import android.text.method.ScrollingMovementMethod
import android.util.Log
import android.view.KeyEvent
import android.view.MotionEvent
import android.view.inputmethod.InputMethodManager
import android.widget.Button
import android.widget.EditText
import android.widget.ImageView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class A_Test_Kotlin : AppCompatActivity() {
//============= [컴포넌트 선언] =============
lateinit var display_textview : EditText
lateinit var one_button : Button
//============= [전역변수 선언] =============
var str_data = ""
//============= [액티비티 시작 메소드] =============
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_a_aa_test_kotlin)
Log.d("---","---")
Log.d("//===========//","================================================")
Log.d("","\n"+"[A_Test_Kotlin > onCreate() 메소드 : 액티비티 시작 실시]")
Log.d("//===========//","================================================")
Log.d("---","---")
//============= [컴포넌트 매칭 실시] =============
display_textview = findViewById(R.id.display_textview)
display_textview.setMovementMethod(ScrollingMovementMethod())
display_textview.setText("Display")
one_button = findViewById(R.id.one_button)
//============= [버튼 클릭 이벤트] =============
one_button.setOnClickListener{
Toast.makeText(application, "ONE 수행", Toast.LENGTH_SHORT).show()
try{
}
catch(e : Exception){
e.printStackTrace()
}
}
}//TODO 메인 종료
//============= [백버튼 터치시 뒤로 가기] =============
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
// 디바이스의 키 이벤트가 발생했는데, 뒤로가기 이벤트일때
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.d("---","---")
Log.d("//===========//","================================================")
Log.d("","\n"+"[A_Test_Kotlin > onKeyDown() 메소드 : 백버튼 터치시 뒤로 가기 이벤트 실시]")
Log.d("//===========//","================================================")
Log.d("---","---")
//TODO === [액티비티 종료 실시] ===
finish()
overridePendingTransition(0, 0)
}
return true
}
//============= [바깥 레이아웃 클릭 시 키보드 내림] =============
override fun dispatchTouchEvent(event: MotionEvent): Boolean {
val action = event.action
when (action) {
MotionEvent.ACTION_DOWN -> {
//====== [창 내리는 용도] ======
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(display_textview.windowToken, 0)
}
MotionEvent.ACTION_MOVE -> {
}
else -> {
}
}
return super.dispatchTouchEvent(event)
}
//============= [액티비티 종료 메소드] =============
override fun onDestroy() {
super.onDestroy()
Log.d("---","---")
Log.d("//===========//","================================================")
Log.d("","\n"+"[A_Test_Kotlin > onDestroy() 메소드 : 액티비티 종료 실시]")
Log.d("//===========//","================================================")
Log.d("---","---")
try {
//TODO 외부 브라우저 복귀 시 화면 전환 애니메이션 없애기 위함
overridePendingTransition(0, 0)
} catch (e: Exception) {
e.printStackTrace()
}
}
//============= [액티비티 실행 준비 메소드] =============
override fun onResume() {
super.onResume()
Log.d("---","---")
Log.d("//===========//","================================================")
Log.d("","\n"+"[A_Test_Kotlin > onResume() 메소드 : 액티비티 준비 실시]")
Log.d("//===========//","================================================")
Log.d("---","---")
try {
//TODO 외부 브라우저 복귀 시 화면 전환 애니메이션 없애기 위함
overridePendingTransition(0, 0)
} catch (e: Exception) {
e.printStackTrace()
}
}
}//TODO 클래스 종료
[환경 설정 관련]
<build.gradle(Project) 파일>
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
//====코틀린 코드 위함====
ext.kotlin_version = "1.3.72"
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:4.0.0"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
//====코틀린 코드 위함====
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
// ==== 추가 ====
maven { url "https://jitpack.io" }
// ==== 뱃지 사용위함 ====
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
<build.gradle(Module:app) 파일>
apply plugin: 'com.android.application'
// ====코틀린 코드 위함====
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 30
defaultConfig {
applicationId "kr.co.two2k.manager" //앱 아이디
minSdkVersion 21
targetSdkVersion 30
versionCode 2 //앱 버전 코드
versionName "1.0.2" //앱 버전 네임
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release { //프로가드 난독화 설정 여부
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
//=====코틀린 코드 위함=====
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
<gradle.properties 파일>
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx2048m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app"s APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
/* =========================== */
/* =========================== */
[결과 출력]
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments