Android 移动应用开发:页面跳转与数据传递功能
目录
✅ 运行效果说明
📁 文件一:MainActivity.java(语言:Java)
📁 文件二:Edit_MainActivity.java(语言:Java)
📁 文件三:activity_main.xml(语言:XML)
📁 文件四:activity_edit_main.xml(语言:XML)
本教程带你实现一个简单的 Android 应用,包含以下功能:
-
点击按钮打开百度网页;
-
使用
Intent
调用系统地图应用显示指定坐标; -
页面跳转至编辑界面,返回修改后的“姓名”和“年龄”。
适合初学者学习 Intent
的用法、页面跳转、数据传递与回传等核心知识点。文中代码均为 Java 和 XML 文件,复制粘贴可直接运行。
✅ 运行效果说明
-
主界面含有四个按钮与两个文本框;
-
点击“打开百度”跳转网页;
-
点击“打开地图”跳转地图应用;
-
点击“编辑”跳转编辑页面,修改后返回主页面并更新信息。
📁 文件一:MainActivity.java(语言:Java)
// 文件路径:com.example.intent.MainActivity.java
package com.example.intent;import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {private Button btn_1,btn_2,btn_3,btn_bianji;private TextView tv_name,tv_age;private String name = "小宁";private int age = 18;@SuppressLint("MissingInflatedId")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn_1 = findViewById(R.id.btn_1);btn_2 = findViewById(R.id.btn_2);btn_3 = findViewById(R.id.btn_3);btn_bianji = findViewById(R.id.btn_bianji);tv_name = findViewById(R.id.tv_name);tv_age = findViewById(R.id.tv_age);// 打开百度btn_1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent(Intent.ACTION_VIEW);Uri data = Uri.parse("https://www.baidu.com/");intent.setData(data);startActivity(intent);}});// 打开地图btn_3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {double latitude = 23.743282;double longitude = 113.102215;Uri geoUri = Uri.parse("geo:" + latitude + "," + longitude);Intent intent = new Intent(Intent.ACTION_VIEW);intent.setData(geoUri);startActivity(intent);}});tv_name.setText(name);tv_age.setText(String.valueOf(age));// 打开编辑页面btn_bianji.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent(MainActivity.this, Edit_MainActivity.class);intent.putExtra("NAME", name);intent.putExtra("AGE", age);startActivityForResult(intent, 1001);}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);String name = data.getStringExtra("NAME");int age = data.getIntExtra("AGE", 0);tv_name.setText(name);tv_age.setText(String.valueOf(age));}
}
📁 文件二:Edit_MainActivity.java(语言:Java)
// 文件路径:com.example.intent.Edit_MainActivity.java
package com.example.intent;import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;public class Edit_MainActivity extends AppCompatActivity {private EditText edt_name, edt_age;private Button btn_queding;@SuppressLint("MissingInflatedId")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_edit_main);Intent intent = getIntent();String name = intent.getStringExtra("NAME");int age = intent.getIntExtra("AGE", 0);edt_name = findViewById(R.id.edt_name);edt_age = findViewById(R.id.edt_age);btn_queding = findViewById(R.id.btn_queding);edt_name.setText(name);edt_age.setText(String.valueOf(age));btn_queding.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {String name = edt_name.getText().toString();int age = Integer.parseInt(edt_age.getText().toString());Intent intent = new Intent();intent.putExtra("NAME", name);intent.putExtra("AGE", age);setResult(2001, intent);finish();}});}
}
📁 文件三:activity_main.xml(语言:XML)
<!-- 文件路径:res/layout/activity_main.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/btn_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="打开百度" /><Buttonandroid:id="@+id/btn_2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="打开电话" /><Buttonandroid:id="@+id/btn_3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="打开地图" /><TextViewandroid:id="@+id/tv_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="姓名" /><TextViewandroid:id="@+id/tv_age"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="年龄" /><Buttonandroid:id="@+id/btn_bianji"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="编辑" />
</LinearLayout>
📁 文件四:activity_edit_main.xml(语言:XML)
<!-- 文件路径:res/layout/activity_edit_main.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><EditTextandroid:id="@+id/edt_name"android:layout_width="200dp"android:layout_height="wrap_content" /><EditTextandroid:id="@+id/edt_age"android:layout_width="200dp"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/btn_queding"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="确定" />
</LinearLayout>
欢迎开发者将代码复制到 Android Studio 中运行学习。如有需要,可后续添加打电话功能、定位导航、拨号页面等更多实践。需要更复杂的页面跳转与数据封装处理,也可以基于此案例拓展学习。