一、实验目的
掌握Activity的创建与配置。
掌握Activity之间数据传递与数据回传。
二、实验内容
实验题目 Activity之间实现数据传递及数据回传
任务要求:
模拟短信发送页面,联系人信息通过点击按钮打开新的页面(或系统联系人)获取,短信内容部分填写自己学号、姓名、性别、爱好等信息(或使用listview自定义模拟短信模板页),点击发送按钮,使用隐式意图调用系统短信应用,模拟信息发送。
三、实验指导
1、创建Activity并进行配置。
2、创建页面布局文件。
3、使用Intent实现界面之间的跳转传值。
4、将模拟器运行结果截图到word文档中,并将核心代码复制到word文档中。
四、模拟器效果截图
五、实验源代码
ActivityJump01.java
1. package com.example.myapplication02; 2. 3. import androidx.annotation.Nullable; 4. import androidx.appcompat.app.AppCompatActivity; 5. import android.content.Intent; 6. import android.database.Cursor; 7. import android.net.Uri; 8. import android.os.Bundle; 9. import android.provider.ContactsContract; 10. import android.view.View; 11. import android.widget.Button; 12. import android.widget.EditText; 13. 14. public class ActivityJump01 extends AppCompatActivity { 15. private Button btn_Send,btn_open; 16. EditText editText; 17. @Override 18. protected void onCreate(Bundle savedInstanceState) { 19. super.onCreate(savedInstanceState); 20. setContentView(R.layout.activity_jump01); 21. btn_Send=findViewById(R.id.btn_Send); 22. btn_open=findViewById(R.id.btn_open); 23. editText=findViewById(R.id.editTextTextPersonName); 24. Mylistener mylistener=new Mylistener(); 25. btn_Send.setOnClickListener(mylistener); 26. btn_open.setOnClickListener(mylistener); 27. } 28. 29. @Override 30. protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { 31. super.onActivityResult(requestCode, resultCode, data); 32. Uri contactUri = data.getData(); 33. String[] projection = new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER}; 34. Cursor cursor = getContentResolver().query(contactUri, projection, 35. null, null, null); 36. if (cursor != null && cursor.moveToFirst()) { 37. int numberIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); 38. String number = cursor.getString(numberIndex); 39. editText.setText(number); 40. } 41. } 42. 43. class Mylistener implements View.OnClickListener{ 44. @Override 45. public void onClick(View v) { 46. switch (v.getId()){ 47. case R.id.btn_Send: //发送短信 48. Intent intent1=new Intent(); 49. intent1.setAction(Intent.ACTION_SENDTO); 50. intent1.setData(Uri.parse("smsto:"+editText.getText().toString())); 51. intent1.putExtra("sms_body", "姓名:LWL;" + "性别:男;" + "学号:20201415204;" + "爱好:热爱学习"); 52. startActivity(intent1); 53. break; 54. case R.id.btn_open: 55. //打开联系人界面 56. Intent intent3 = new Intent(Intent.ACTION_PICK); 57. intent3.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); 58. startActivityForResult(intent3, 0); 59. break; 60. } 61. } 62. } 63. }
ActivityJump02.java
1. package com.example.myapplication02; 2. 3. import androidx.appcompat.app.AppCompatActivity; 4. import android.content.Intent; 5. import android.os.Bundle; 6. import android.view.View; 7. import android.widget.AdapterView; 8. import android.widget.ArrayAdapter; 9. import android.widget.ListView; 10. import android.widget.TextView; 11. 12. public class ActivityJump02 extends AppCompatActivity { 13. private ListView lv; 14. private String[] phone = {"110", "120", "119"}; 15. 16. @Override 17. protected void onCreate(Bundle savedInstanceState) { 18. super.onCreate(savedInstanceState); 19. setContentView(R.layout.activity_jump02); 20. lv = findViewById(R.id.lv); 21. lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, phone)); 22. lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 23. @Override 24. public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 25. //返回选中的电话号码 26. Intent data=new Intent(); 27. data.putExtra("phone",phone[position]); 28. setResult(1,data); 29. finish(); 30. } 31. }); 32. } 33. }
activity_jump01.xml
1. <?xml version="1.0" encoding="utf-8"?> 2. <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3. xmlns:app="http://schemas.android.com/apk/res-auto" 4. xmlns:tools="http://schemas.android.com/tools" 5. android:layout_width="match_parent" 6. android:layout_height="match_parent" 7. android:background="@drawable/p01" 8. tools:context=".ActivityJump01"> 9. 10. <Button 11. android:id="@+id/btn_Send" 12. android:layout_width="wrap_content" 13. android:layout_height="wrap_content" 14. android:text="发送短信" 15. app:layout_constraintBottom_toBottomOf="parent" 16. app:layout_constraintEnd_toEndOf="parent" 17. app:layout_constraintStart_toStartOf="parent" 18. app:layout_constraintTop_toTopOf="parent" /> 19. 20. <EditText 21. android:id="@+id/editTextTextPersonName" 22. android:layout_width="242dp" 23. android:layout_height="66dp" 24. android:layout_marginTop="188dp" 25. android:layout_marginEnd="6dp" 26. android:ems="10" 27. android:hint="点击选择联系人" 28. android:inputType="textPersonName" 29. app:layout_constraintEnd_toStartOf="@+id/btn_open" 30. app:layout_constraintStart_toStartOf="parent" 31. app:layout_constraintTop_toTopOf="parent" /> 32. 33. <Button 34. android:id="@+id/btn_open" 35. android:layout_width="wrap_content" 36. android:layout_height="wrap_content" 37. android:layout_marginEnd="2dp" 38. android:text="选择联系人" 39. app:layout_constraintBaseline_toBaselineOf="@+id/editTextTextPersonName" 40. app:layout_constraintEnd_toEndOf="parent" 41. app:layout_constraintStart_toEndOf="@+id/editTextTextPersonName" /> 42. </androidx.constraintlayout.widget.ConstraintLayout>
activity_jump02.xml
1. <?xml version="1.0" encoding="utf-8"?> 2. <androidx.constraintlayout.widget.ConstraintLayout 3. xmlns:android="http://schemas.android.com/apk/res/android" 4. xmlns:app="http://schemas.android.com/apk/res-auto" 5. xmlns:tools="http://schemas.android.com/tools" 6. android:layout_width="match_parent" 7. android:layout_height="match_parent" 8. tools:context=".ActivityJump02"> 9. 10. <ListView 11. android:id="@+id/lv" 12. android:layout_width="0dp" 13. android:layout_height="0dp" 14. app:layout_constraintEnd_toEndOf="parent" 15. app:layout_constraintStart_toStartOf="parent" 16. app:layout_constraintTop_toTopOf="parent" 17. app:layout_constraintBottom_toBottomOf="parent"/> 18. </androidx.constraintlayout.widget.ConstraintLayout>