๋ฐ์ํ
๐ฅ 1. ๊ฐ๋ ์ค๋ช
๐ฑ 1. Activity
- ์ ์: ํ๋์ ํ๋ฉด์ ๋ด๋นํ๋ ์๋๋ก์ด๋ ์ฑ์ ๊ธฐ๋ณธ ๋จ์.
- ์ญํ : ์ฌ์ฉ์์ ์ํธ์์ฉํ ์ ์๋ ์ฐฝ ์ญํ ์ ํจ.
- ์๋ช ์ฃผ๊ธฐ: onCreate, onStart, onResume, onPause, onStop, onDestroy ๋ฉ์๋๊ฐ ์์.
- ์์: ์นด์นด์คํก์ ์ฑํ ๋ชฉ๋ก ํ๋ฉด, ์ฑํ ๋ฐฉ ํ๋ฉด์ด ๊ฐ๊ฐ ๋ณ๋์ Activity๋ก ๊ตฌํ๋ ์ ์์.
๐ ์ค์ ๋ฉ์๋
๋ฉ์๋์ค๋ช
onCreate() | Activity ์์ฑ ์ ํธ์ถ๋๋ ๋ฉ์๋๋ก, ๋ทฐ๋ฅผ ์ด๊ธฐํํ๋ ์ฝ๋๊ฐ ์์ฑ๋จ. |
onStart() | Activity๊ฐ ์ฌ์ฉ์์๊ฒ ๋ณด์ด๊ธฐ ์ง์ ์ ํธ์ถ๋จ. |
onResume() | ์ฌ์ฉ์์ ์ํธ์์ฉํ ์ค๋น๊ฐ ๋์์ ๋ ํธ์ถ๋จ. |
onPause() | ๋ค๋ฅธ ํ๋ฉด์ผ๋ก ์ ํ๋ ๋ ํธ์ถ๋จ (ex. ์ ํ ์์ ). |
onStop() | ๋ค๋ฅธ Activity๋ก ์์ ํ ์ ํ๋์์ ๋ ํธ์ถ๋จ. |
onDestroy() | Activity๊ฐ ์์ ํ ์ข ๋ฃ๋ ๋ ํธ์ถ๋จ. |
๐ฅ 2. Fragment
- ์ ์: Activity ๋ด์์ ํ๋ฉด์ ์ผ๋ถ๋ฅผ ๋ด๋นํ๋ ์์ ๋ชจ๋ํ๋ ํ๋ฉด.
- ์ญํ : ํ ๊ฐ์ Activity์ ์ฌ๋ฌ ๊ฐ์ Fragment๋ฅผ ๋ถ์ด๊ฑฐ๋, ๊ต์ฒดํ๋ฉด์ ๋์ ํ๋ฉด ์ ํ์ ๊ฐ๋ฅํ๊ฒ ํจ.
- ํ์ฉ:
- ํ๋์ Activity์ **ํญ ๋ ์ด์์(TabLayout)**์ ๊ตฌํํ ๋ ๊ฐ ํญ์ Fragment๋ฅผ ์ฐ๊ฒฐ.
- **๋ทฐํ์ด์ (ViewPager)**์์ ์ข์ฐ๋ก ์ฌ๋ผ์ด๋ํ ๋ Fragment๋ฅผ ์ฌ์ฉํจ.
๐ ์ค์ ๋ฉ์๋
๋ฉ์๋์ค๋ช
onAttach() | Fragment๊ฐ Activity์ ์ฐ๊ฒฐ๋ ๋ ํธ์ถ๋จ. |
onCreateView() | Fragment์ UI๋ฅผ ์์ฑํ ๋ ํธ์ถ๋จ. |
onViewCreated() | View๊ฐ ์์ ํ ์์ฑ๋ ํ ํธ์ถ๋จ. |
onDestroyView() | View๊ฐ ํ๊ดด๋ ๋ ํธ์ถ๋จ. |
๐ฅ 3. View
- ์ ์: ํ๋ฉด์ ๊ตฌ์ฑ์์๋ก, ๋ฒํผ, ํ ์คํธ, ์ด๋ฏธ์ง ๋ฑ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ UI ์์.
- ์ญํ : ์ฌ์ฉ์์ ์ํธ์์ฉํ ์ ์๋๋ก ์ ๋ ฅ, ํด๋ฆญ, ๋๋๊ทธ ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํจ.
- ์ข
๋ฅ:
- TextView: ํ ์คํธ ํ์
- Button: ๋ฒํผ ์์ฑ
- EditText: ์ฌ์ฉ์ ์ ๋ ฅ ํ ์คํธ
- ImageView: ์ด๋ฏธ์ง ํ์
- RecyclerView: ๋ชฉ๋ก ํํ์ ์คํฌ๋กค ๋ทฐ
๐ ์ค์ ๋ฉ์๋
๋ฉ์๋์ค๋ช
setOnClickListener() | ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๋ ๋ฉ์๋. |
setVisibility() | View์ ๋ณด์ด๊ธฐ/์จ๊ธฐ๊ธฐ๋ฅผ ์ ์ด. |
setEnabled() | View์ ํ์ฑํ/๋นํ์ฑํ ์ ์ด. |
๐ฅ 4. Intent
- ์ ์: Activity ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ , ์๋ก์ด Activity๋ฅผ ์คํํ ๋ ์ฌ์ฉํ๋ ๊ฐ์ฒด.
- ์ญํ : Activity ๊ฐ ํ๋ฉด ์ ํ, ์๋น์ค ์คํ, ๋ธ๋ก๋์บ์คํธ ๋ฉ์์ง ์ก์์ ์ ์ฌ์ฉ.
- ์ข
๋ฅ:
- Explicit Intent (๋ช ์์ ์ธํ ํธ): ํน์ Activity๋ฅผ ๋ช ํํ ์ง์ .
- Implicit Intent (์์์ ์ธํ ํธ): ์ด๋ฉ์ผ ๋ณด๋ด๊ธฐ, ์น๋ธ๋ผ์ฐ์ ์ด๊ธฐ ๋ฑ์ ์์ ์ ์ํํ ๋ ์ฌ์ฉ.
๐ ์ฃผ์ ๋ฉ์๋
๋ฉ์๋์ค๋ช
startActivity() | ๋ค๋ฅธ Activity๋ฅผ ์์ํจ. |
putExtra() | ๋ค๋ฅธ Activity์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํจ. |
getExtras() | ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉํจ. |
๐ฅ 5. Context
- ์ ์: ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ ๋ณด์ ์ ๊ทผํ ์ ์๋ ์ธํฐํ์ด์ค.
- ์ญํ : ๋ฆฌ์์ค ์ ๊ทผ, ์กํฐ๋นํฐ ์์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ ๋ฑ ๋ค์ํ ์์ ์ ์ฌ์ฉ๋จ.
- ์ข
๋ฅ:
- Activity Context: Activity ์์ฒด๊ฐ Context์.
- Application Context: ์ฑ์ ์ ๋ฐ์ ์ธ Context.
- ํ์ฉ:
- getApplicationContext(): ์ฑ ์ ์ฒด์ ์ปจํ ์คํธ ์ ๊ทผ.
- this: Activity์์ ํ์ฌ์ ์ปจํ ์คํธ๋ฅผ ์ฐธ์กฐํ ๋ ์ฌ์ฉ.
๐ฅ 2. ์ค์ต: ๋ ๊ฐ์ Activity๋ก ํ๋ฉด ์ ํ ์ฑ ๋ง๋ค๊ธฐ
package com.example.myapp
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 1. ๋ฒํผ ์ฐ๊ฒฐ (๋ทฐ ๋ฐ์ธ๋ฉ)
val btnGoToSecond = findViewById<Button>(R.id.btnGoToSecond)
// 2. ํด๋ฆญ ๋ฆฌ์ค๋ ์ฐ๊ฒฐ
btnGoToSecond.setOnClickListener {
// 3. Intent๋ก ํ๋ฉด ์ ํ
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)
}
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btnGoToSecond"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go to Second Activity" />
</LinearLayout>
package com.example.myapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
// 1. ๋ฒํผ ์ฐ๊ฒฐ (๋ทฐ ๋ฐ์ธ๋ฉ)
val btnGoBack = findViewById<Button>(R.id.btnGoBack)
// 2. ํด๋ฆญ ๋ฆฌ์ค๋ ์ฐ๊ฒฐ
btnGoBack.setOnClickListener {
// 3. ํ์ฌ Activity ์ข
๋ฃ (MainActivity๋ก ๋ณต๊ท)
finish()
}
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btnGoBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go Back to Main" />
</LinearLayout>
https://developer.android.com/reference/android/content/Context
https://developer.android.com/reference/android/content/Intent
๋ฐ์ํ
'Android Studio' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Android | WebView(์น๋ทฐ) (2) | 2024.12.13 |
---|---|
Android Studio + Kotlin | ์ ํ๋ก์ ํธ์์ ํ๋กํ ์ด๋ฏธ์ง ๋ณ๊ฒฝ ์๋๋ ํ์ (0) | 2024.12.09 |