Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,503

HOME > Mobile > Android Tutorials - สอนเขียน Android App ฟรี เขียนโปรแกรมแอนดรอยด์บน SmartPhone / Tablets > ตอนที่ 6 : Xamarin กับ Android สร้าง Event Handler โต้ตอบแบบง่าย ๆ (C#)





Clound SSD Virtual Server

ตอนที่ 6 : Xamarin กับ Android สร้าง Event Handler โต้ตอบแบบง่าย ๆ (C#)

ตอนที่ 6 : Xamarin กับ Android สร้าง Event Handler โต้ตอบแบบง่าย ๆ (C#) สำหรับ Event Handler เป็นรูปแบบการสร้างเหตุการณ์ที่เกิดขึ้นบนหน้าจอของ App ซึ่งปกติแล้ว Application ประเภท Smartphone และ Tablets จะเป็นแบบ Touchscreen ฉะนั้น Event ที่เกิดขึ้นได้จะมีอยู่ได้หลากหลายประเภทมาก เช่นการ เตาะที่หน้าจอ จะเป็นเหมือนการคลิก Event หรือการ Slide (Swipe) บนหนาจอเลื่อนในรูปแบบต่าง ๆ ซึ่ง Event เหล่านี้ในการเขียน Android ปกติจะมี Event รองรับอยู่แล้ว และสำหรับบน Xamarin ที่เขียนด้วยภาษา C# การสร้าง Event ก็จะมีรูปแบบคล้ายคลึงกับการเขียนบน Android ด้วยภาษา Java เช่น Event การ Click เป็นต้น

ในการสร้าง Event บน Android ด้วย C# จะใช้หลักการเดียวกับการเขียน C# ในรูปแบบทั่ว ๆ ไป คือการอ้างถึง Control หรือ Widgets และ delegate ตัว Event ให้กับ Widgets นั้น ๆ เช่น

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            // Submit
            Button btnSubmit = FindViewById<Button>(Resource.Id.btnSubmit);
            btnSubmit.Click += delegate
            {
                // Someting event
            };

        }

จาก Code จะเป็นการอ้างถึง Button ที่อยู่ใน Resource.Layout.Main ชื่อว่า btnSubmit พร้อมกับสร้าง Delegate Event การคลิก

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            // Submit
            Button btnSubmit = FindViewById<Button>(Resource.Id.btnSubmit);
            btnSubmit.Click += (object sender, EventArgs e) =>
            {
                btnSubmitClick(sender, e);
            };

        }

        private void btnSubmitClick(object sender, EventArgs e)
        {
            // Someting event
        }

สามารถแยก Event ในรูปแบบของ sender เพื่ออ้างถึง method อื่น ๆ ได้

ลองมาดูตัวอย่างการสร้าง Event Handler แบบง่าย ๆ บน Android ด้วย C#

Xamarin Android C# Event Handler

หน้าจอ Layout ของ Activity

Xamarin Android C# Event Handler

ตอนนี้หน้าจอของ Acitivty ยังว่าง ๆ มีแค่ Widgets ของ Layout ที่เป็นค่า Default ควบคุมการแสดงผลของ Activity

Xamarin Android C# Event Handler

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editText1" />

ลาก Widgets ของ EditText ชื่อว่า Plain Text เข้ามาบนหน้าจอ Activity

Xamarin Android C# Event Handler

    <Button
        android:text="Button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button1" />

และพร้อมด้วย Widgets ของ Button

Xamarin Android C# Event Handler

    <TextView
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/textView1" />

และ Widgets ของ TextView








Xamarin Android C# Event Handler

ตอนนี้เรามี Widgets อยู่ 3 ตัวคือ EditText , Button และ TextView

Xamarin Android C# Event Handler

เปลี่ยนชื่อหรือ id ของแต่ล่ะตัวเพื่อง่ายและสะดวกในการอ้างถึง

Main.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtName" />
    <Button
        android:text="Submit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnSubmit" />
    <TextView
        android:text="Result"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/lblResult" />
</LinearLayout>


Xamarin Android C# Event Handler

หน้าจอที่ได้บน Activity

Xamarin Android C# Event Handler

ในไฟล์ MainActivity.cs เราจะสร้าง Event ดังรูป โดยการจะเรียกใช้งาน Widgets จะต้องทำการ FindViewById หา id ของ Widgets พร้อมกับกำหนด Property ต่าง ๆ

Xamarin Android C# Event Handler

หลังจากคลิกเราจะสร้าง Event โต้ตอบเพื่ออ่านค่าและแสดงค่า Result บน TextView

MainActivity.cs
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace myFirstApps
{
    [Activity(Label = "myFirstApps", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            // Submit
            Button btnSubmit = FindViewById<Button>(Resource.Id.btnSubmit);
            btnSubmit.Click += (object sender, EventArgs e) =>
            {
                btnSubmitClick(sender, e);
            };

        }

        private void btnSubmitClick(object sender, EventArgs e)
        {

            // Input
            EditText txtName = FindViewById<EditText>(Resource.Id.txtName);

            // Result
            TextView lblResult = FindViewById<TextView>(Resource.Id.lblResult);
            lblResult.Text = string.Format("Sawatdee Khun : {0} ", txtName.Text);

        }

    }
}









ทดสอบการทำงาน

Xamarin Android C# Event Handler

รัน App บน Emulator

Xamarin Android C# Event Handler

กรอกข้อมูลทดสอบกรอกชื่อ

Xamarin Android C# Event Handler

จากนั้นคลิกที่ Submit ซึ่งถ้าไม่มีอะไรผิดพลาดโปรแกรมจะโต้ตอบกลับมาด้วยประโยคว่า "Sawatdee Khun.... "

Xamarin Android C# Event Handler

จาก Code ข้างต้นสามารถ delegate ให้อยู่ใน method เดียวกันได้ง่าย ๆ เช่น

            // Submit
            Button btnSubmit = FindViewById<Button>(Resource.Id.btnSubmit);
            btnSubmit.Click += delegate
            {
                // Input
                EditText txtName = FindViewById<EditText>(Resource.Id.txtName);

                // Result
                TextView lblResult = FindViewById<TextView>(Resource.Id.lblResult);
                lblResult.Text = string.Format("Sawatdee Khun : {0} ", txtName.Text);
            };



.

   
Share


ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท


ลองใช้ค้นหาข้อมูล


   


Bookmark.   
       
  By : ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ)
  Score Rating :  
  Create/Update Date : 2014-09-15 12:36:59 / 2017-03-26 20:54:05
  Download : No files
 Sponsored Links / Related

 
ตอนที่ 1 : รู้จัก Xamarin ติดตั้ง Xamarin เขียน Android Apps ด้วย C# (.Net Framework)
Rating :

 
ตอนที่ 2 : รู้จัก Xamarin Studio IDE การเขียน Android บน Xamarin ด้วยภาษา C#
Rating :

 
ตอนที่ 3 : พื้นฐาน Xamarin บน Visual Studio และการสร้าง Project ของ Android ด้วย C#
Rating :

 
ตอนที่ 4 : ติดตั้ง Xamarin บน Mac (OS X) และการเขียน Android บนเครื่อง Mac ด้วย C#
Rating :

 
ตอนที่ 5 : Xamarin กับ Android โครงสร้างไฟล์ Project และ Controls / Widgets (C#)
Rating :

 
ตอนที่ 7 : Xamarin กับ Android สร้าง Activity เชื่อมโยง Intent ส่งค่า Pass ตัวแปรระหว่าง Activity(C#)
Rating :

 
ตอนที่ 8 : Xamarin กับ Android การใช้ SetContentView() ควบคุมการแสดง XML Layout (C#)
Rating :

 
ตอนที่ 9 : Xamarin กับ Android การสร้าง Dialog Popup และ Alert Dialog / Toast Make Text (C#)
Rating :

 
ตอนที่ 10 : Xamarin กับ Android การ Generate/Deploy เป็น APK Package นำไปใช้งานจริง (C#)
Rating :


ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


สุดยอด Source Code V2.0
 

แจ้งชำระเงิน/โอนเงิน
 

Hit Link
   







Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่