Android 移动应用开发:页面跳转与数据传递功能

发布于:2025-05-10 ⋅ 阅读:(13) ⋅ 点赞:(0)

目录

✅ 运行效果说明

📁 文件一:MainActivity.java(语言:Java)

📁 文件二:Edit_MainActivity.java(语言:Java)

📁 文件三:activity_main.xml(语言:XML)

📁 文件四:activity_edit_main.xml(语言:XML)


本教程带你实现一个简单的 Android 应用,包含以下功能:

  • 点击按钮打开百度网页;

  • 使用 Intent 调用系统地图应用显示指定坐标;

  • 页面跳转至编辑界面,返回修改后的“姓名”和“年龄”。

适合初学者学习 Intent 的用法、页面跳转、数据传递与回传等核心知识点。文中代码均为 JavaXML 文件,复制粘贴可直接运行。


✅ 运行效果说明

  1. 主界面含有四个按钮与两个文本框;

  2. 点击“打开百度”跳转网页;

  3. 点击“打开地图”跳转地图应用;

  4. 点击“编辑”跳转编辑页面,修改后返回主页面并更新信息。


📁 文件一: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")
    @Override
    protected 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() {
            @Override
            public 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() {
            @Override
            public 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() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, Edit_MainActivity.class);
                intent.putExtra("NAME", name);
                intent.putExtra("AGE", age);
                startActivityForResult(intent, 1001);
            }
        });
    }

    @Override
    protected 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")
    @Override
    protected 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() {
            @Override
            public 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">

    <Button
        android:id="@+id/btn_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="打开百度" />

    <Button
        android:id="@+id/btn_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="打开电话" />

    <Button
        android:id="@+id/btn_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="打开地图" />

    <TextView
        android:id="@+id/tv_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="姓名" />

    <TextView
        android:id="@+id/tv_age"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="年龄" />

    <Button
        android: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">

    <EditText
        android:id="@+id/edt_name"
        android:layout_width="200dp"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/edt_age"
        android:layout_width="200dp"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/btn_queding"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="确定" />
</LinearLayout>

欢迎开发者将代码复制到 Android Studio 中运行学习。如有需要,可后续添加打电话功能、定位导航、拨号页面等更多实践。需要更复杂的页面跳转与数据封装处理,也可以基于此案例拓展学习。


网站公告

今日签到

点亮在社区的每一天
去签到