รับทําเว็บไซต์ รับทําseo
 
รับทําเว็บไซต์ รับทําseo
บทความที่น่าสนใจ

บทความ ที่น่าสนใจ

Android Application : การสั่งให้ Activity อื่นทำงาน เพื่อนำผลลัพธ์มาใช้

     ในบทความนี้ จะแสดงให้เห็นถึงตัวอย่างการสั่งให้ Activity อื่นทำงาน เพื่อนำผลลัพธ์มาใช้ โดยจะแสดงให้เห็นถึงการเขียนคำสั่งภายใน Class Activity, การเขียนคำสั่งภายในไฟล์ XML Layout, และการประกาศ Activity ไว้ภายในไฟล์ AndroidManifest.xml ดังนี้
     


    การเขียนคำสั่งภายใน Class Activity

     

    ไฟล์ MainActivity.java
        package test.me.activity;
         
        import android.app.Activity;
        import android.content.Intent;
        import android.os.Bundle;
        import android.view.View;
        import android.widget.Button;
        import android.widget.TextView;
         
        public class MainActivity extends Activity
        {
            public void onCreate ( Bundle savedInstanceState )
            {
                super.onCreate ( savedInstanceState );
                 
                this.setContentView ( R.layout.activity_main );
                 
                 
                Button btnChoice = ( Button ) this.findViewById ( R.id.choice );
                 
                btnChoice.setOnClickListener ( new View.OnClickListener ( )
                {
                    public void onClick ( View v )
                    {
                        Intent intent = new Intent ( MainActivity.this, ChoiceActivity.class );
                         
                        startActivityForResult ( intent, 999 );
                    }
                }
                );
            }
             
            protected void onActivityResult ( int requestCode, int resultCode, Intent intent )
            {
                super.onActivityResult ( requestCode, resultCode, intent );
                 
                if ( resultCode == RESULT_OK && requestCode == 999 )
                {
                    String color = intent.getStringExtra ( "color" );
                     
                     
                    TextView label = ( TextView ) this.findViewById ( R.id.label );
                     
                    label.setText ( color );
                }
            }
        }

     

    ไฟล์ ChoiceActivity.java
        package test.me.activity;
         
        import android.app.Activity;
        import android.content.Intent;
        import android.os.Bundle;
        import android.view.View;
        import android.widget.Button;
         
        public class ChoiceActivity extends Activity
        {
            public void onCreate ( Bundle savedInstanceState )
            {
                super.onCreate ( savedInstanceState );
                 
                this.setContentView ( R.layout.activity_choice );
                 
                 
                Button btnBlue = ( Button ) this.findViewById ( R.id.blue );
                 
                btnBlue.setOnClickListener ( new View.OnClickListener ( )
                {
                    public void onClick ( View v )
                    {
                        Intent intent = new Intent ( );
                         
                        intent.putExtra ( "color", "You select Blue Color" );
                         
                         
                        setResult ( RESULT_OK, intent );
                         
                        finish ( );
                    }
                }
                );
                 
                 
                Button btnGreen = ( Button ) this.findViewById ( R.id.green );
                 
                btnGreen.setOnClickListener ( new View.OnClickListener ( )
                {
                    public void onClick ( View v )
                    {
                        Intent intent = new Intent ( );
                         
                        intent.putExtra ( "color", "You select Green Color" );
                         
                         
                        setResult ( RESULT_OK, intent );
                         
                        finish ( );
                    }
                }
                );
            }
        }
     


    จากคำสั่งข้างต้น สามารถอธิบาย Class MainActivity ได้ดังนี้ คำสั่ง startActivityForResult ( intent, 999 ); ในบรรทัดที่ 27 เป็นการสั่งให้ Activity อื่นทำงาน และรอผลลัพธ์กลับมาใช้ โดยส่งค่า requestCode คือ 999 ไปด้วย และ method onActivityResult ( ) ในบรรทัดที่ 33 เป็น CallBack Method ที่จะทำงานเมื่อ Activity นั้นกลับมาทำงานอีกครั้งหนึ่ง หลังจากที่ได้สั่งให้ Activity อื่นทำงานโดยใช้ method startActivityForResult ( ) ซึ่งคำสั่ง if ( resultCode == RESULT_OK && requestCode == 999 ) ในบรรทัดที่ 37 เป็นการตรวจสอบเงื่อนไขว่าจะให้เกิดการทำงานใด ๆ จากการส่ง requestCode ใดไป และได้รับ resultCode ใดมา โดย resultCode เป็นค่าที่ส่งกลับมาจาก Activity ที่ได้สั่งให้ทำงาน และ requestCode เป็นค่าที่ได้ส่งไปใน method startActivityForResult ( )



    และสามารถอธิบาย Class ChoiceActivity ได้ดังนี้ คำสั่ง setResult ( RESULT_OK, intent ); ในบรรทัดที่ 29 หรือบรรทัดที่ 48 เป็นการส่งค่า resultCode กลับไปยัง Activity ที่ได้สั่งให้ทำงาน



    การเขียนคำสั่งภายในไฟล์ XML Layout

     

    ไฟล์ activity_main.xml
        <!-- activity_main.xml -->
        <?xml version="1.0" encoding="utf-8"?>
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
         
            <TextView
            android:id="@+id/label"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="- Please Select Color -" />
             
            <Button
            android:id="@+id/choice"
            android:layout_below="@id/label"
            android:layout_marginTop="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="Select Color" />
             
        </RelativeLayout>

     

    ไฟล์ activity_choice.xml
        <!-- activity_choice.xml -->
        <?xml version="1.0" encoding="utf-8"?>
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
         
            <Button
            android:id="@+id/blue"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="Blue" />
             
            <Button
            android:id="@+id/green"
            android:layout_below="@id/blue"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="Green" />
         
        </RelativeLayout>
     


    จากคำสั่งข้างต้น สามารถอธิบายไฟล์ activity_main.xml ได้ดังนี้ element <TextView> มี id คือ label (ประกาศไว้ในบรรทัดที่ 8) และ element <Button> มี id คือ choice (ประกาศไว้ในบรรทัดที่ 16) ซึ่ง id เหล่านี้ถูกใช้อ้างอิงใน Class MainActivity ข้างต้น



    และสามารถอธิบายไฟล์ activity_choice.xml ได้ดังนี้ element <Button> มี id คือ blue (ประกาศไว้ในบรรทัดที่ 8) และ element <Button> มี id คือ green (ประกาศไว้ในบรรทัดที่ 16) ซึ่ง id เหล่านี้ถูกใช้อ้างอิงใน Class ChoiceActivity ข้างต้น



    การประกาศ Activity ไว้ภายในไฟล์ AndroidManifest.xml

        <?xml version="1.0" encoding="utf-8"?>
        <manifest ... >
            <application ... >
                <activity android:name="test.me.activity.MainActivity" ... >
                    <intent-filter>
                        <action android:name="android.intent.action.MAIN" />
                        <category android:name="android.intent.category.LAUNCHER" />
                    </intent-filter>
                </activity>
                 
                <activity android:name="test.me.activity.ChoiceActivity" ... />
            </application>
        </manifest>
     


    จากคำสั่งข้างต้น สามารถอธิบายได้ว่า มีการประกาศ Activity ชื่อ MainActivity ที่อยู่ใน Package test.me.activity ไว้ภายในไฟล์ AndroidManifest.xml ในบรรทัดที่ 4 และมีการประกาศ Activity ชื่อ ChoiceActivity ที่อยู่ใน Package test.me.activity ไว้ภายในไฟล์ AndroidManifest.xml ในบรรทัดที่ 11

     

    หน้าจอแสดงผลของ ตัวอย่างการสั่งให้ Activity อื่นทำงาน เพื่อนำผลลัพธ์มาใช้ จากการเขียนคำสั่งข้างต้น

     

    หน้าจอแสดงผลของ ตัวอย่างการสั่งให้ Activity อื่นทำงาน เพื่อนำผลลัพธ์มาใช้

     

    จากรูปแสดงหน้าจอของ MainActivity

     

    หน้าจอแสดงผลของ ตัวอย่างการสั่งให้ Activity อื่นทำงาน เพื่อนำผลลัพธ์มาใช้

     

    จากรูปแสดงหน้าจอของ ChoiceActivity เมื่อได้ Click ที่ปุ่ม "Select Color" จากหน้าจอของ MainActivity

     

    หน้าจอแสดงผลของ ตัวอย่างการสั่งให้ Activity อื่นทำงาน เพื่อนำผลลัพธ์มาใช้

     

    จากรูปแสดงหน้าจอของ MainActivity อีกครั้ง หลังจากที่ได้เลือก Color จากหน้าจอ ChoiceActivity แล้ว ซึ่งสังเกตได้ว่า ข้อความได้เปลี่ยนไป

     

บทความที่น่าสนใจ

บทความ ล่าสุด

บทความ ความรู้ด้านไอที, คอมพิวเตอร์ Techonlogy, Gadget, ความรู้เกี่ยวกับคอมพิวเตอร์ กับทาง SoftMelt.com