Categories
Android Mobile

ការសិក្សាពីមូលដ្ឋានគ្រឹះនៃការប្រើប្រាស់ Intent នៅក្នុង Android

មាតិកា

I.    សេចក្តីផ្តើម

II.   គោលបំណង

III.  តម្រូវការ

IV.  ប្រភេទនៃ intent

V.   របៀបបើក activity ថ្មីជាមួយ intent

VI.  របៀបបើក activity ថ្មីជាមួយ intent ដោយបោះ data មកជាមួយ

VII. ការផ្ញើ Data ជាលក្ខណៈ Object ដោយប្រើប្រាស់ Intent

I.          សេចក្តីផ្តើម

Intent គឺជា simple message object ដែលត្រូវបានគេប្រើប្រាស់ដើម្បីធ្វើការទំនាក់ទំនងរវាង android components ដូចជា activities, contents providers, broadcast receivers ហើយនិង services ផ្សេងៗជាច្រើនទៀត។ ម្យ៉ាងវិញទៀត Intent ក៏ជាការបើកនូវ Activity មួយទៅ Activity មួយទៀតនៅពេលដែលយើងធ្វើការចុចទៅលើ Activity ណាមួយ។ ជាទូទៅ intent ត្រូវបានគេប្រើប្រាស់សម្រាប់ធ្វើការចាប់ផ្តើមនូវ activity ថ្មី ដោយប្រើនូវ function “startActivity()”។

II.          គោលបំណង

ក្រោយពីអនុវត្តន៍តាម Tutorial នេះ លោកអ្នកនឹងយល់អំពី

  • យល់ដឹងអំពីប្រភេទ Intent នៅក្នុង Android
  • យល់ដឹងអំពីរបៀបប្រើប្រាស់ Intent នៅក្នុង Android
  • យល់ដឹងពីរបៀប call ហៅ activity តាមរយៈ intent
  • ចេះពីវិធីសរសេរកូដ

III.         តម្រូវការ

ដើម្បីអាចបង្កើត Android Project បាន យើងត្រូវមាន៖

  • កម្មវិធី Android Studio (version 3.2.1)
  • ត្រូវមាន Internet connection (ករណីដែលយើងចង់ធ្វើការប្រើប្រាស់ gradle ដើម្បីទាញយក library និងករណីផ្សេងៗចាំបាច់ទៀត)
  • Maximum RAM យ៉ាងហោចណាស់ 4GB ឡើង
  • CPU គួរតែជាប្រភេទ intel CORE i3 ឡើងទៅ ទើបប្រសើរ
  • គួរមាន Hard Disk ប្រភេទ SSD ទើបវាពន្លឿនក្នុងការ run android project បានរលូន
  • ត្រូវមាន phone ដែលប្រើប្រាស់ប្រតិបត្តិការ android
  • ករណីដែលយើងគ្មាន Phone ដែលប្រើប្រាស់ប្រតិបត្តិការ Android ទេ យើងក៏អាចធ្វើការប្រើប្រាស់ Genymotion សម្រាប់ធ្វើជា Emulator

VI.        ប្រភេទនៃ intent

Intent ត្រូវបានគេចែកចេញជាពីរគឺ

  • Implicit Intent
  • Explicit Intent
  1. Implicit Intent

Implicit Intent ប្រើវាសម្រាប់ធ្វើការបើកនូវ dialog, បើកនូវ setting ដូចជា map, location, camera, …. ជាដើម។ មួយវិញទៀត Implicit Intent គឺត្រូវបានគេប្រើសម្រាប់បញ្ជាក់ពី action ដែលបង្ហាញឡើង ជាមួយនិង data (optional) ដែលផ្តល់នូវ contents សម្រាប់ action ទាំងនោះ។

Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(“http://www.google.com”));
startActivity(i);  
  • Explicit Intent

Explicit Intent គឺត្រូវបានគេប្រើប្រាស់សម្រាប់កំណត់នូវ component ដែលត្រូវបាន call ដោយ Android system ដោយប្រើប្រាស់នូវ Java class ធ្វើជា identifier។ Explicit Intent ជាទូទៅត្រូវបានគេប្រើនៅក្នុង application ក្នុងលក្ខណៈជា class ដែលត្រូវបានគ្រប់គ្រងដោយ developer។ ខាងក្រោមនេះគឺជាការបង្ហាញពីរបៀបបង្កើត explicit intent និងការ send data ទៅកាន់ activity មួយទៀត។

Intent i = new Intent(this, ActivityTwo.class);
i.putExtra(“Value1”, “This value one for ActivityTwo “);
i.putExtra(“Value2”, “This value two ActivityTwo”);  

V.          របៀបបើក activity ថ្មីជាមួយ intent

ដើម្បីយល់អំពីការប្រើប្រាស់ intent សូមធ្វើការអនុវត្តន៏តាមជំហានខាងក្រោម៖

  • សូមបង្កើត Project (ចូលមើលមេរៀនមុនអំពីរបៀបបង្កើត project)
  • យើងនឹងទទួលបាន application structure ដូចរូប
  • សូមបង្កើត activity មួយទៀត ដោយចូលទៅកាន់
    • right click លើ Java
    • New
    • Activity
    • Basic Activity
  • វានឹងចេញផ្ទាំងមួយទៀតសម្រាប់អោយយើងដាក់ឈ្មោះអោយ Activity
  • សូមដាក់ឈ្មោះថា “SecondActivity
  • ចុច Finish
  • ពេលនោះយើងនឹងទទួលបាន structure ថ្មីដូចរូប យើងគួរកត់សម្គាល់ឃើញថា android នឹងបង្កើត xml នៅក្នុង layout អោយយើងចំនួនពីរបន្ថែមទៀត គឺ activity_second.xml និង content_second.xml
  • សូមបើក activity_first.xml ឡើង
  • បន្ទាប់មកធ្វើការចាប់ទាញ Button ចូលទៅក្នុង Layout
  • ក្រោយពីយើងទាញ button រួច សូមចូលទៅកាន់ Text
  • វានឹងបង្កើតកូខ xml របស់ button អោយយើង ដូចខាងក្រោម
  • សូមធ្វើការ customize កូដនៅក្នុង xml របស់ button
  • បន្ទាប់មកទៀត សូមបើកនូវ Activity ទី២ (content_second.xml)
  • សូមទាញ TextView ដាក់ចូលទៅក្នុង Layout
  • ចុចលើ Text
  • យើងនឹងទទួលបាន TextView ដូចរូប
  • សូម edit កូដខាងលើ
  • ក្រោយពីយើងបានបង្កើត Layout ទាំងពីររួចរាល់ហើយ
  • សូមចូលទៅកាន់ Java class ដើម្បីធ្វើការសរសេរកូដដើម្បីភ្ជាប់ activity ទី១ទៅកាន់ activity ទី២ តាមរយៈដែលយើងចុចលើ button ដោយប្រើប្រាស់នូវ intent
  • ចុចលើ FirstActivity
  • សូមសរសរកូដក្នុង function “onCreate
  • នៅក្នុង android studio វាជួយសម្រួលការសរសរកូដរបស់យើងបានច្រើនណាស់ ដោយសារវាបង្ហាញនូវ dropdown function/method សម្រាប់អោយយើងរើសបានយើងងាយស្រួល។ ដូចរូបខាងក្រោមនេះ ក្រោយពីយើងបង្កើតនូវ reference object រួចមក យើងក៏យក object នោះ គ្រាន់តែចុច (.) វានឹងបង្ហាញរាល់ព័ត៌មាន method ដែលយើងត្រូវការចេញមកតែម្តង។
  • សូមជ្រើសរើសយក setOnClickListener()
  • វានឹង error ពីព្រោះវាត្រូវការ implement នូវ method មួយទៀត
  • លោកអ្នកគ្រាន់តែវាយ keyword “new” បន្ទាប់មកទៀតវាយអក្សរ V ពេលនោះអ្នកនឹងឃើញមាន method មួយទៀតដើម្បីអោយយើងធ្វើការ override លើ method នោះ
  • យក View.OnClickListener(…)
  • សូមសរសេរកូដក្នុង method “onClick()”
  • សូម run app ដោយចុចលើ menu “Run” à យកពាក្យថា “Run app”
  • សូមរើសយកប្រភេទ device របស់លោកអ្នក
  • យើងនិងទទួលបានលទ្ធផលដូចរូប
    • រូបភាពទី១ គឺជា First Activity Layout
  • សូមចុចលើប៊ូតុង Go to second activity ដើម្បីបើកទៅកាន់ activity ទី២
  • រូបភាពទី២ បង្ហាញពី Activity ក្រោយពីយើងចុចលើប៊ូតុងរួច

VI.          របៀបបើក activity ថ្មីជាមួយ intent ដោយបោះ data មកជាមួយ

នៅក្នុងផ្នែកនេះគឺខ្ញុំចង់បង្ហាញពីការបើក activity ពីខាងលើ ដោយចុចលើ button  រួចហើយផ្ញើdata​ ទៅជាមួយ ដើម្បីបង្ហាញនៅក្នុង activity ទី២។

  • ជាដំបូងសូមធ្វើការបន្ថែម TextView មួយនៅក្នុង Activity ទី២ ដូចរូប
  • សូមធ្វើការសរសរកូដនៅក្នុង FirstActivity.java
  • សូមជ្រើសរើស putExtra ណាមួយទៅតាម parameter ដែលយើងត្រូវការ
  • ដើម្បីអាចអោយ Activity ទី២ទទួលយកតម្លៃបានលុះត្រាតែយើងចូលទៅកាន់ class “SecondActivity.java” ដើម្បីធ្វើការសរសេរកូដចូល.
  • សូមធ្វើការ Run app
    • ផ្ទាំង Activity ទី១
  • ចុចលើ button

VII.          ការផ្ញើ Data ជាលក្ខណៈ Object ដោយប្រើប្រាស់ Intent

នៅក្នុងចំនុចនេះយើងនឹងដឹងពីរបៀបក្នុងការបោះ data ដោយប្រើប្រាស់ object។

  • សូមបង្កើត class មួយសម្រាប់ store នូវ object
  • Right click លើ folder Java
  • New
  • Java Class
  • វានឹង popup ផ្ទាំងមួយឡើង
  • ដាក់ឈ្មោះថា “MyModel”
  • បង្កើត properties អោយ class “MyModel”
  • ធ្វើការ generate geter/setter ទៅអោយ properties ខាងលើ
    • ដោយ right click ពីក្រោម properties ទាំងនោះ
  • យកពាក្យថា “Generate…”
  • យកពាក្យថា “Getter and Setter”
  • សូម select យកទាំងពីរ
  • OK
  • សូមបង្កើត constructor អោយ class ហ្នឹង
  • ធ្វើដូចគ្នា
  • សូមធ្វើការសរសេរកូដក្នុង FirstActivity.java
  • សូមចូលទៅកាន់ SecondActivity.java ដើម្បីធ្វើការចាប់យកតម្លៃ

By sysomeho

Ho Sysome obtains B.S. degree in Computer Science from Phnom Penh Internation University (PPIU) in 2013 and currently studying Master of Science in IT (MSIT) at Asia Euro University (AEU). He worked as an IT Officer at Microfinance Institute and Bank in Phnom Penh. He is familar in programming language such as VB.NET, Java (Java2EE, Spring), Codeigniter, Laravel, mysql, sql server and so on. He enjoys sharing knowledges, learns from other, and develop himself.
Find him on Facebook: Spy Ro, Linkedin: Sysome HO.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.