yourginieus
Activity, setOnClickListener(), Toast, 난수 표시 본문
Android/Android Kotlin 기초 실습 정리
Activity, setOnClickListener(), Toast, 난수 표시
EOJIN 2022. 10. 25. 02:56- Activity
- Android 앱 사용자 UI를 통해 이벤트를 수신하는 핵심 Android 클래스
- 앱이 시작되면 AndroidManifest.xml 파일에 지정된 Activity가 시작됨
- Android 앱에서는 AndroidManifest.xml 을 통해 사용자가 앱의 실행 아이콘을 탭할 시 MainActivity가 실행됨을 나타냄
- 액티비티를 실행하기 위해, Android OS는 매니페스트의 정보를 사용하고 앱의 환경을 설정하며 MainActivity를 구성함
- 각 액티비티에는 관련된 레이아웃 파일이 있음
- Activity와 Layout은 layout inflation 이라고 하는 프로세스에 의해 연결 됨
- 액티비티가 시작되면 XML 레이아웃 파일에 정의된 뷰가 Kotlin 뷰 객체로 변환 됨
- 이 작업이 완료되면 액티비티는 이러한 객체를 화면에 그릴 수 있으며, 동적으로 수정할 수도 있음
- MainActivity
class MainActivity : AppCompatActivity() {
...
}
** AppCompatActivity : Activity의 하위 클래스. 최신 Android 기능을 모두 지원하면서 이전 버전의 Android와의 하위 호환성을 제공함. 가능한 한 많은 장치와 사용자가 앱을 사용할 수 있도록 하려면 AppCompatActvity 사용
- onCreate() method
- Activity는 생성자를 이용하여 개체를 초기화하는 것이 아닌, 사전 정의된 method(lifecycle method) 가 activity setup의 파트로 호출 됨
- 이러한 life cycle method 중의 하나가 onCreate()
- 여기서 Actiity와 관련된 레이아웃을 지정하고 확장함
- setContentView() 를 통해!
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
- setContentView() method : 레이아웃의 ID를 통해 해당 레이아웃을 참조함
- R.layout.id 는 정수로서 참조 됨
- R클래스는 앱의 모든 resources를 포함하며, res 디렉토리로 이동 함
- 리소스에는 파일 확장자는 포함되지 않음
- Layout : View
- layout 파일은 res/layout에 있으며, 액티비티가 실제로 어떻게 보이는지를 나타내는 XML 파일
- 뷰를 정의하고 뷰가 화면에 표시되는 위치를 정의 함
- View : View 클래스로 확장되며, 다양한 유형의 뷰가 있음
- TextView, Button, ImageView, CheckBox ...
- View : View 클래스로 확장되며, 다양한 유형의 뷰가 있음
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</LinearLayout>
- <LinearLayout> : 레이아웃의 최상위 또는 루트 element
- ViewGroup 임
- View group은 다른 view들을 포함하고 있으며 화면에서 view의 위치를 지정하는 데 도움이 됨
- layout에 추가 된 모든 view 및 view group은 view hierarchy에 포함되며, 그 계층의 root는 xml의 최상위 요소로 설정 됨
- Layout : Strings
- 레이아웃이나 코드 파일의 문자열들은 직접 치는 것보다 별도의 파일에 저장하는 것이 좋음
- strings.xml 파일!
- res/values/ 디렉토리에 위치 함
- 문자열을 여러 번 사용하는 경우 문자열 관리가 수월해짐
- 언어별로 문자열 리소스 파일을 생성해야 하므로 앱 번역 및 현지화를 위해서는 문자열 리소스가 필수!
<resources>
<string name="app_name">DiceRoller</string>
<string name="roll_label">Roll</string>
</resources>
- android:layout_gravity
- center_vertical : 해당 뷰를 상위요소의 세로 가운데에 위치시킴
- center_horizontal : 해당 뷰를 상위요소의 가로 가운데에 위치시킴
- 클릭 핸들러
- 클릭 가능한 UI 요소를 클릭하거나 탭할 때마다 호출되는 method
- setOnClickListener() : handler method로 이동하는 method
- Toast 메세지
- 화면 위에 잠깐 띄워지는 메세지
- Toast.makeText() 를 통해 생성 가능 -> 필요한 4가지 요소
- Context : 최신 상태의 Android OS와 소통하고 그에 대한 정보를 얻어올 수 있게 함
- Toast object가 OS에 토스트를 표시하도록 지시하기 위해 필요
- AppCompatActivity가 Context의 하위 클래스이기 때문에, this로 대체 가능
- 표시되는 메세지
- 메세지 표시 길이
- 토스트 표시를 위한 show() method
- Context : 최신 상태의 Android OS와 소통하고 그에 대한 정보를 얻어올 수 있게 함
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rollButton: Button = findViewById(R.id.roll_button)
rollButton.setOnClickListener { rollDice() }
}
private fun rollDice() {
Toast.makeText(this, "button clicked",
Toast.LENGTH_SHORT).show()
}
}
- TextView의 text 변경
- TextView 객체에 layout의 ID로 바꾸려는 텍스트뷰를 할당한 후
- text method를 통해 변경 가능
android:id="@+id/result_text"
val resultText: TextView = findViewById(R.id.result_text)
resultText.text = "Dice Rolled!"
- 난수 표시
- 버튼 클릭에 랜덤성을 추가하는 것
val randomInt = (1..6).random()
resultText.text = randomInt.toString()
'Android > Android Kotlin 기초 실습 정리' 카테고리의 다른 글
User Interactivity : 사용자와 상호작용 - 키보드 보이기, 숨기기 (0) | 2022.10.25 |
---|---|
LinearLayout, TextView, Scroll View, dp/sp (0) | 2022.10.25 |
Basic Activity Architecture, Launcher Icon 변경 (0) | 2022.10.25 |
setImageResources, tools, dependencies (0) | 2022.10.25 |
Android Studio Project의 기본 폴더 (0) | 2022.10.25 |
Comments