Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

วิธีส่งข้อมูลระหว่างกิจกรรมกับ android Serializable


การใช้การทำให้เป็นอนุกรม เราสามารถส่งสถานะหรืออาร์เรย์ของวัตถุระหว่างสองกิจกรรมได้ ก่อนเข้าสู่โค้ด เราควรทราบเกี่ยวกับการทำให้เป็นอนุกรมและทำงานโดยเจตนาใน Android อย่างไร

การทำให้เป็นอันดับเป็นส่วนต่อประสานเครื่องหมาย การใช้การทำให้เป็นอนุกรม เราสามารถแปลงสถานะของอ็อบเจ็กต์เป็นสตรีมไบต์ได้ ไบต์สตรีมเป็นแพลตฟอร์มที่ไม่ขึ้นกับแพลตฟอร์ม ดังนั้นมันจึงทำงานบน JVM และแพลตฟอร์มอื่นๆ นี่คือตัวอย่างการส่งวัตถุระหว่างสองกิจกรรม

ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่

ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml

   <ปุ่ม android:layout_width ="wrap_content" android:layout_height ="wrap_co ntent" android:text ="ส่งข้อมูล" android:id ="@+id/send"/>

ขั้นตอนที่ 2 − ต่อไปนี้เป็นเนื้อหาของไฟล์กิจกรรมหลักที่แก้ไข MainActivity.java ไฟล์นี้สามารถรวมวิธีวงจรชีวิตพื้นฐานแต่ละวิธีได้

นำเข้า android.content.Intent;นำเข้า android.support.v7.app.AppCompatActivity;นำเข้า android.os.Bundle;นำเข้า android.text.TextUtils;นำเข้า android.view.View;นำเข้า android.widget.Button;นำเข้า android.widget.EditText; นำเข้า android.widget.Toast; MainActivity คลาสสาธารณะขยาย AppCompatActivity { ชื่อ EditText; แก้ไขข้อความโทรศัพท์; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); ชื่อ =findViewById(R.id.name); โทรศัพท์ =findViewById(R.id.phone); ปุ่มส่ง =findViewById(R.id.send); send.setOnClickListener (View.OnClickListener ใหม่ () { @แทนที่โมฆะสาธารณะ onClick (ดู v) { ถ้า (TextUtils.isEmpty (name.getText ().toString ()) &&TextUtils.isEmpty (phone.getText ().toString ( ))) { Toast.makeText(MainActivity.this,"มีบางอย่างผิดปกติโปรดตรวจสอบ",Toast.LENGTH_LONG).show(); }else{sendUserData(name.getText().toString(),phone.getText() toString()); } } }); } โมฆะส่วนตัว sendUserData (ชื่อผู้ใช้สตริง, สตริงผู้ใช้โทรศัพท์) { Userinfo userinfo =ใหม่ Userinfo (); userinfo.setName(ชื่อผู้ใช้); ข้อมูลผู้ใช้.setPhone(userPhone); เจตนาส่ง =เจตนาใหม่ (MainActivity.this,SecondActivity.class); Bundle b =ชุดใหม่ (); b.putSerializable("serialzable",ข้อมูลผู้ใช้); send.putExtras(b); startActivity(ส่ง); }}

ขั้นตอนที่ 3 - ต่อไปนี้เป็นเนื้อหาของไฟล์กิจกรรมหลักที่แก้ไข SecondActivity.java ไฟล์นี้สามารถรวมวิธีการวงจรชีวิตพื้นฐานแต่ละวิธี กิจกรรมนี้จะเข้าถึงวัตถุจาก MainActivity ดังที่แสดงด้านล่าง -

<ก่อนหน้า>นำเข้า android.support.v7.app.AppCompatActivity;นำเข้า android.os.Bundle;นำเข้า android.widget.TextView;คลาสสาธารณะ SecondActivity ขยาย AppCompatActivity { Userinfo userinfo; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_second); ข้อมูล TextView =findViewById (R.id.data); userinfo =(Userinfo) getIntent().getSerializableExtra("serialzable"); ชื่อสตริง =userinfo.getName(); โทรศัพท์สายอักขระ =userinfo.getPhone(); data.setText("ชื่อที่คุณป้อนคือ "+ชื่อ+" หมายเลขคือ "+โทรศัพท์); } @Override ป้องกันโมฆะ onPause() { super.onPause(); ข้อมูลผู้ใช้ =null; }}

ขั้นตอนที่ 3 − ต่อไปนี้เป็นเนื้อหาของอ็อบเจ็กต์ Userinfo ที่เรียงลำดับได้ ข้อมูลอ็อบเจ็กต์นี้เรากำลังส่งผ่านระหว่าง MainActivity และ SecondActivity เพื่อให้ Userinfo เป็นวัตถุซีเรียลไลซ์ได้ เราควรใช้ java.io.Serializable อินเทอร์เฟซที่แสดงด้านล่าง −

นำเข้า java.io.Serializable;class Userinfo ใช้ Serializable { ชื่อสตริง; โทรศัพท์สาย; สตริงสาธารณะ getName () { ชื่อส่งคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) { this.name =ชื่อ; } สตริงสาธารณะ getPhone() { โทรศัพท์คืน; } โมฆะสาธารณะ setPhone (โทรศัพท์สตริง) { this.phone =โทรศัพท์; }}

มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์ของคุณแล้วคลิก Run วิธีส่งข้อมูลระหว่างกิจกรรมกับ android Serializable ไอคอนจากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก จากนั้นตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ

วิธีส่งข้อมูลระหว่างกิจกรรมกับ android Serializable


วิธีส่งข้อมูลระหว่างกิจกรรมกับ android Serializable

ตอนนี้คลิกที่ปุ่มส่งข้อมูล มันจะส่งคุณไปที่ SecondActivity ดังที่แสดงด้านล่าง -

วิธีส่งข้อมูลระหว่างกิจกรรมกับ android Serializable

ในผลลัพธ์ข้างต้น เราได้ข้อมูลจาก MainActivity ถึง SecondActivity