Android Kotlin

เขียนแอพฯ Android ด้วย Kotlin วิธีการรับค่า EditText และ Intent

บทเรียนนี้เราจะพัฒนาแอพพลิเคชัน Android ด้วยภาษา Kotlin ซึ่งถือว่าเป็นภาษาใหม่ ตัวอย่างแรกคือการทำงานร่วมกับ EditText

ให้เราสร้าง New Project ขึ้นมาเพียงแค่ตอนสร้าง Project เราจำเป็นต้องเลือกภาษาเป็น Include Kotlin support

หลังจากนั้นก็สร้าง Empty Activity ปกติ เพียงแค่ Class แรกที่เราจะทำงานคือ MainActivity.kt นั่นเอง ต่อมาให้เราออกแบบหน้าจอ Layout ของเราที่ไฟล์ activity_main.xml ใหม่ดังนี้:

นี่คือไฟล์ activity_main.xml

<?xml version="1.0" encoding="utf-8"?>  
 <android.support.constraint.ConstraintLayout  
     xmlns:android="http://schemas.android.com/apk/res/android"  
     xmlns:tools="http://schemas.android.com/tools"  
     xmlns:app="http://schemas.android.com/apk/res-auto"  
     android:layout_width="match_parent"  
     android:layout_height="match_parent"  
     tools:context=".Main2Activity">  
   <LinearLayout  
       android:orientation="horizontal"  
       android:layout_width="0dp"  
       android:layout_height="120dp" 
       android:layout_marginTop="8dp" 
       app:layout_constraintTop_toTopOf="parent"  
       app:layout_constraintStart_toStartOf="parent" 
       android:layout_marginStart="8dp"  
       app:layout_constraintEnd_toEndOf="parent" 
       android:layout_marginEnd="8dp" android:id="@+id/linearLayout">  
     <EditText  
         android:layout_width="wrap_content"  
         android:layout_height="wrap_content"  
         android:inputType="textPersonName"  
         android:ems="10"  
         android:id="@+id/editText2" 
         android:layout_weight="1" 
         android:hint="Name"/>  
     <TextView  
         android:text="Please Fill"  
         android:layout_width="wrap_content"  
         android:layout_height="wrap_content" 
         android:id="@+id/textView2" 
         android:layout_weight="1"/>  
   </LinearLayout>  
   <LinearLayout  
       android:orientation="horizontal"  
       android:layout_width="0dp"  
       android:layout_height="120dp" 
       android:layout_marginTop="8dp"  
       app:layout_constraintTop_toBottomOf="@+id/linearLayout" 
       app:layout_constraintStart_toStartOf="parent"  
       android:layout_marginStart="8dp" 
       app:layout_constraintEnd_toEndOf="parent" 
       android:layout_marginEnd="8dp"  
       android:id="@+id/linearLayout2">  
     <EditText  
         android:layout_width="wrap_content"  
         android:layout_height="wrap_content"  
         android:inputType="textEmailAddress"  
         android:ems="10"  
         android:id="@+id/editText3" 
         android:layout_weight="1" 
         android:hint="Email Address"/>  
     <TextView  
         android:text="Pease Fill"  
         android:layout_width="wrap_content"  
         android:layout_height="wrap_content" 
         android:id="@+id/textView3" 
         android:layout_weight="1"/>  
   </LinearLayout>  
   <LinearLayout  
       android:orientation="horizontal"  
       android:layout_width="0dp"  
       android:layout_height="120dp"  
       app:layout_constraintStart_toStartOf="parent" 
       android:layout_marginStart="8dp"  
       android:layout_marginTop="8dp" 
       app:layout_constraintTop_toBottomOf="@+id/linearLayout2"  
       app:layout_constraintEnd_toEndOf="parent" 
       android:layout_marginEnd="8dp" 
       android:id="@+id/linearLayout3">  
     <EditText  
         android:layout_width="wrap_content"  
         android:layout_height="wrap_content"  
         android:inputType="phone"  
         android:ems="10"  
         android:id="@+id/editText4" 
         android:layout_weight="1" 
         android:hint="Phone"/>  
     <TextView  
         android:text="Please Fill"  
         android:layout_width="wrap_content"  
         android:layout_height="wrap_content" 
         android:id="@+id/textView4" 
         android:layout_weight="1"/>  
   </LinearLayout>  
   <Button  
       android:text="SUBMIT"  
       android:layout_width="0dp"  
       android:layout_height="wrap_content"  
       android:id="@+id/button" 
       app:layout_constraintStart_toStartOf="parent" 
       android:layout_marginStart="8dp"  
       app:layout_constraintEnd_toEndOf="parent" 
       android:layout_marginEnd="8dp"  
       app:layout_constraintTop_toBottomOf="@+id/linearLayout3" 
       android:layout_marginBottom="8dp"  
       app:layout_constraintBottom_toBottomOf="parent" 
       app:layout_constraintHorizontal_bias="0.0"  
       app:layout_constraintVertical_bias="0.776"/>  
 </android.support.constraint.ConstraintLayout>  

กลับมาที่ MainActivity.kt ให้เราประกาศ Global Variable ดังนี้:

   var editName: EditText? = null  
   var editEmail: EditText? = null  
   var editPhone: EditText? = null  
   var button: Button? = null

ไปที่ onCreate() เพิ่มการประกาศตัวแปรเข้ากับ widget ดังนี้:

editName = findViewById(R.id.editText2) as EditText  
editEmail = findViewById(R.id.editText3) as EditText  
editPhone = findViewById(R.id.editText4) as EditText  
button = findViewById(R.id.button) as Button

เพิ่ม Activity ใหม่เป็น Empty Activity ชื่อว่า InformationActivity ขึ้นมาโดยคลิกที่ app->New->Activity->Empty Activity

กลับมาที่หน้า MainActivity.kt เพิ่มคำสั่ง setOnClickListener() ให้กับ Button ดังนี้:

button!!.setOnClickListener {  
   var intent = Intent(this, InformationActivity::class.java)  
   intent.putExtra("NAME",""+ editName!!.getText().toString())  
   intent.putExtra("EMAIL",""+ editEmail!!.getText().toString())  
   intent.putExtra("PHONE",""+ editPhone!!.getText().toString())  
   startActivity(intent)  
 }

โดยเราจะรับค่าจาก EditText ไปเก็บใน Parameter ชื่อ Name สำหรับส่งค่าผ่าน Intent ไปยังหน้าปลายทางคือ InformationActivity

var intent = Intent(this, InformationActivity::class.java)

ส่วนหน้า InformationActivity.kt ให้เราลาก TextView มาวาง 3 ตัวสำหรับทำ setText ที่รับค่าจาก getIntent() จากหน้า MainActivity ดังนั้นหน้า InformationActivity.kt จะเป็นดังนี้:

import android.content.Intent  
 import android.support.v7.app.AppCompatActivity  
 import android.os.Bundle  
 import android.widget.Button  
 import android.widget.EditText  
 class InformationActivity : AppCompatActivity() {  
   var information_name: TextView? = null  
   var information_email: TextView? = null  
   var information_phone: TextView? = null  
   var button: Button? = null  
   override fun onCreate(savedInstanceState: Bundle?) {  
     super.onCreate(savedInstanceState)  
     setContentView(R.layout.activity_information)  
     information_name = findViewById(R.id.information_name) as TextView  
     information_email = findViewById(R.id.information_email) as TextView  
     information_phone = findViewById(R.id.information_phone) as TextView  
     var intent = getIntent()  
     information_name!!.setText(""+intent.getStringExtra("NAME"))  
     information_email!!.setText(""+intent.getStringExtra("EMAIL"))  
     information_phone!!.setText(""+intent.getStringExtra("PHONE"))  
   }  
 }  

ทดสอบแอพพลิเคชันของเรา

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

Back to top button

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน