อินเทนต์และการนำทาง
นำทางระหว่าง Activity ด้วยอินเทนต์แบบระบุชัดเจน ส่งข้อมูลด้วย putExtra/getExtra และเปิดแอปภายนอกด้วยอินเทนต์แบบไม่ระบุปลายทาง
อินเทนต์และการนำทาง เป็นบทเรียน Android Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 5 จากทั้งหมด 7 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Android Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Android Academy มีบทเรียนทั้งหมด 7 บทเรียน
Intent คืออะไร
Intent คือข้อความที่บอกให้ Android ทำบางสิ่ง:
- Explicit Intent — เปิด Activity ที่ระบุในแอปของคุณ
- Implicit Intent — ขอให้ Android ค้นหาแอปที่จัดการการกระทำนั้นได้ เช่น เปิด URL โทรออก หรือแชร์ข้อความ
Intent เป็นวิธีหลักที่ Activity ใช้สื่อสารระหว่างกัน
Explicit Intent: เปิดหน้าจอ
เปิด Activity อื่นในแอปของคุณ:
// In your button click listener:
binding.btnGoToDetail.setOnClickListener {
val intent = Intent(this, DetailActivity::class.java)
startActivity(intent)
}
// To also close the current screen after navigating:
binding.btnLogin.setOnClickListener {
val intent = Intent(this, HomeActivity::class.java)
startActivity(intent)
finish() // removes LoginActivity from back stack
}การส่งข้อมูลด้วย Extras
ใช้ extras เพื่อส่งข้อมูลไปยัง Activity ถัดไป:
intent.putExtra("key", value)— แนบข้อมูลintent.getStringExtra("key")— เรียกคืน Stringintent.getIntExtra("key", defaultValue)— เรียกคืน Int
ใช้ค่าคงที่สำหรับคีย์เพื่อหลีกเลี่ยงการพิมพ์ผิด
การส่งและรับ Extras
ส่งข้อมูลจาก Activity หนึ่ง แล้วอ่านข้อมูลนั้นใน Activity ถัดไป:
// Sending Activity:
val intent = Intent(this, DetailActivity::class.java)
intent.putExtra("PRODUCT_ID", 42)
intent.putExtra("PRODUCT_NAME", "Laptop")
startActivity(intent)
// DetailActivity — receiving:
class DetailActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_detail)
val id = intent.getIntExtra("PRODUCT_ID", -1)
val name = intent.getStringExtra("PRODUCT_NAME") ?: ""
// Use id and name to load data
}
}Implicit Intent
Implicit Intent ทำให้แอปของคุณใช้ความสามารถจากแอปอื่นที่ติดตั้งไว้ได้ โดยไม่ต้องทราบว่าแอปใดจะจัดการการกระทำนั้น:
- เปิด URL บนเว็บในเบราว์เซอร์
- โทรออกไปยังหมายเลขโทรศัพท์
- ส่งอีเมล
- แชร์ข้อความไปยังแอปใดก็ได้
Android จะแสดงตัวเลือกแอปหากมีหลายแอปที่จัดการ Intent นี้ได้
Implicit Intent ที่ใช้บ่อย
เปิดการกระทำของระบบด้วย Implicit Intent:
import android.content.Intent
import android.net.Uri
// Open a web page
val webIntent = Intent(Intent.ACTION_VIEW,
Uri.parse("https://developer.android.com"))
startActivity(webIntent)
// Dial a phone number
val dialIntent = Intent(Intent.ACTION_DIAL,
Uri.parse("tel:+15551234567"))
startActivity(dialIntent)
// Share text
val shareIntent = Intent(Intent.ACTION_SEND).apply {
type = "text/plain"
putExtra(Intent.EXTRA_TEXT, "Check out this app!")
}
startActivity(Intent.createChooser(shareIntent, "Share via"))การรับผลลัพธ์กลับมา
เมื่อต้องการผลลัพธ์จากหน้าจออื่น เช่น ตัวเลือกรูปภาพหรือแบบฟอร์ม ให้ใช้ Activity Result API:
- ลงทะเบียนตัวเปิดด้วย
registerForActivityResult - เปิดใช้งานเมื่อจำเป็น
- จัดการผลลัพธ์ใน callback
วิธีนี้มาแทนรูปแบบเดิมที่ใช้ startActivityForResult / onActivityResult
ตัวอย่าง Result API
ขอรูปภาพจากแกลเลอรีและรับรูปภาพกลับมา:
import androidx.activity.result.contract.ActivityResultContracts
class MainActivity : AppCompatActivity() {
private val pickImage = registerForActivityResult(
ActivityResultContracts.GetContent()
) { uri ->
// 'uri' is the selected image URI, or null if cancelled
if (uri != null) {
binding.ivPhoto.setImageURI(uri)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
binding.btnPickPhoto.setOnClickListener {
pickImage.launch("image/*")
}
}
}Deep Link
deep link คือ URL ที่เปิดหน้าจอเฉพาะในแอปของคุณโดยตรง เหมาะสำหรับการแจ้งเตือนแบบพุชและลิงก์ทางการตลาด
ประกาศ deep link ใน AndroidManifest.xml โดยใช้ intent-filter พร้อมแท็ก data ที่ระบุรูปแบบ URL และโฮสต์
ตรวจสอบความเข้าใจ
ควรใช้ Intent ประเภทใดเพื่อเปิดเว็บไซต์ในเบราว์เซอร์ของผู้ใช้
สรุป: Intent และการนำทาง
ขณะนี้คุณสามารถนำทางระหว่างหน้าจอและเปิดใช้ความสามารถของระบบได้แล้ว:
- Explicit Intent — เปิด Activity ที่ระบุในแอปของคุณ
putExtra/getExtra— ส่งข้อมูลระหว่าง Activity- Implicit Intent — เปิด URL โทรออก หรือแชร์เนื้อหา
- Activity Result API — รับข้อมูลกลับจาก Activity อื่น
ถัดไป: แสดงรายการแบบไดนามิกด้วย RecyclerView
เรียนรู้ Kotlin ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 36
- บทเรียน
- 152
คำถามที่พบบ่อย
บทเรียน “อินเทนต์และการนำทาง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “อินเทนต์และการนำทาง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Android Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Android Academy มีบทเรียนทั้งหมด 7 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “อินเทนต์และการนำทาง”
นำทางระหว่าง Activity ด้วยอินเทนต์แบบระบุชัดเจน ส่งข้อมูลด้วย putExtra/getExtra และเปิดแอปภายนอกด้วยอินเทนต์แบบไม่ระบุปลายทาง คุณปฏิบัติ Android Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Android Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Android Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 5 จากทั้งหมด 7 บทเรียน
บทเรียน “อินเทนต์และการนำทาง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Android Academy นี้ได้ไหม
ได้ บทเรียน Android Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างโครงการและไฟล์ Manifest
- Activity และวงจรชีวิต
- เค้าโครงและมุมมอง
- การจัดการข้อมูลที่ผู้ใช้ป้อน
- อินเทนต์และการนำทาง
- Fragment
- สิทธิ์และคำขอขณะทำงาน