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

目录

✅ 运行效果说明

📁 文件一: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")@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 中运行学习。如有需要,可后续添加打电话功能、定位导航、拨号页面等更多实践。需要更复杂的页面跳转与数据封装处理,也可以基于此案例拓展学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/904862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL如何优雅的执行DDL

一、概述 在MySQL中&#xff0c;DDL&#xff08;数据定义语言&#xff09;语句用于定义和管理数据库结构&#xff0c;包括创建、修改和删除数据库对象&#xff08;如表、索引等&#xff09;。执行DDL操作时&#xff0c;需要谨慎处理&#xff0c;以避免对生产环境的稳定性和性能…

onenet连接微信小程序(mqtt协议)

一、关于mqtt协议 mqtt协议常用于物联网&#xff0c;是一种轻量级的消息推送协议。 其中有三个角色&#xff0c;Publisher设备&#xff08;客户端&#xff09;发布主题到服务器&#xff0c;其他的设备通过订阅主题&#xff0c;获取该主题下的消息&#xff0c;Publisher可以发…

【Unity笔记】实现支持不同渲染管线的天空盒曝光度控制组件(SkyboxExposureController)——参数化控制

写在前面 在Unity中&#xff0c;天空盒&#xff08;Skybox&#xff09;不仅承担视觉上的背景作用&#xff0c;更是场景环境光照与氛围塑造的重要组成部分。不同时间、天气、场景转换等&#xff0c;都需要灵活调整天空的亮度。而**曝光度&#xff08;Exposure&#xff09;**就是…

blender云渲染指南2025版

一、云渲染核心概念 Blender云渲染是将本地渲染任务迁移到云端服务器集群的技术&#xff0c;通过分布式计算实现效率提升100倍以上的解决方案&#xff0c;其核心逻辑是&#xff1a;用户上传Blender项目文件至【渲染101】等云平台&#xff0c;云端调用高性能服务器&#xff08;…

火语言RPA--七牛云存储

【组件功能】&#xff1a;存储本地文件至七牛云 选择本地文件&#xff0c;通过七牛云存储配置上传至七牛云对象存储的指定地域指定存储桶指定路径。 配置预览 配置说明 AccessKey 支持T或# 前往官网获取或创建。参考链接&#xff1a;https://portal.qiniu.com/user/key Se…

小刚说C语言刷题—1004阶乘问题

1.题目描述 编程求 123⋯n 。 输入 输入一行&#xff0c;只有一个整数 n(1≤n≤10)&#xff1b; 输出 输出只有一行&#xff08;这意味着末尾有一个回车符号&#xff09;&#xff0c;包括 1 个整数。 样例 输入 5 输出 120 2.参考代码(C语言版) #include <stdio…

C语言| sizeof(array)占多少字节

C语言| 数组名作为函数参数 sizeof(数组名); 可以求出整个数组在内存中所占的字节数。 被调函数Array_Sum()中&#xff0c;数组array使用sizeof会得到多少&#xff1f; 实参数组a占32字节&#xff0c;实参a传给形参array&#xff0c;只占4字节。 原因如下&#xff1a; 数组名做…

Xcavate 上线 Polkadot |开启 Web3 房地产投资新时代

在传统资产 Tokenization 浪潮中&#xff0c;Xcavate 以房地产为切口迅速崛起。作为 2023 年 OneBlock 冬季波卡黑客松冠军&#xff0c;Xcavate 凭借创新的资产管理与分发机制&#xff0c;在波卡生态中崭露头角。此次主网上线&#xff0c;标志着 Xcavate 正式迈入全球化应用阶段…

学习心得《How Global AI Policy and Regulations Will Impact Your Enterprise》Gartner

AI时代来临,然而与之对应的是海量的数据的安全性和合规性如何保障,如何平衡个人与智能体的利益,恰巧,最近Gartner发布了《How Global AI Policy and Regulations Will Impact Your Enterprise》,我们就其中的观点一起进行探讨。 战略规划假设 我们首先关注的是关键的战略…

Inno Setup专业打包指南:从基础到高级应用

Inno Setup专业打包指南&#xff1a;从基础到高级应用 Inno Setup是一款免费开源的Windows安装程序制作工具&#xff0c;以其轻量、易用、功能强大而备受开发者青睐。它通过脚本语言定义安装行为&#xff0c;能够创建标准的Windows安装向导&#xff0c;支持文件安装、注册表操…

VScode中关于Copilot的骚操作

目录 1. Ctrl I 直接在工作区对话 2.Tab 党福音&#xff1a;写注释生成代码 3. 连续写几行函数头&#xff0c;Copilot 会自动“补全全函数” 4. 自动写单元测试 5. 在注释中要求它写某种风格 6. 代码重写器 7. 多语言切换无痛自动翻译 8. 在空文件中写注释&#xff0c…

虚拟专用服务器(VPS)完全指南:从入门到选型

开篇导读 VPS&#xff08;虚拟专用服务器&#xff09;作为介于共享主机与独立服务器之间的托管方案&#xff0c;通过独享资源保障性能本文将系统解析VPS的核心优势、适用场景及选型策略&#xff0c;助您实现从共享主机到VPS的平滑过渡 什么是虚拟专用服务器&#xff1f; 服务…

前端取经路——性能优化:唐僧的九道心经

大家好&#xff0c;我是老十三&#xff0c;一名前端开发工程师。性能优化如同唐僧的九道心经&#xff0c;是前端修行的精髓所在。在本文中&#xff0c;我将为你揭示从网络传输到渲染优化的九大关键技术&#xff0c;涵盖HTTP协议、资源加载策略、缓存控制等核心难题。通过这些实…

[论文阅读]Deeply-Supervised Nets

摘要 我们提出的深度监督网络&#xff08;DSN&#xff09;方法在最小化分类误差的同时&#xff0c;使隐藏层的学习过程更加直接和透明。我们尝试通过研究深度网络中的新公式来提升分类性能。我们关注卷积神经网络&#xff08;CNN&#xff09;架构中的三个方面&#xff1a;&…

1k实现全磁盘扫描搜索——仙盟创梦IDE-智能编程 编程工具设计

牛马的痛苦——身兼数职 在多项目开发场景下&#xff0c;项目数量众多、文件繁杂&#xff0c;导致文件查找困难重重。不同项目架构各异&#xff0c;文件命名缺乏统一规范&#xff0c;相似功能文件分散在不同项目目录&#xff0c;开发人员往往花费大量时间在文件夹层级间反复切…

Mamba 状态空间模型 笔记 llm框架 一维卷积

动画讲解 Mamba 状态空间模型_哔哩哔哩_bilibili 旧文本向量乘权重加残差 感觉好像transformer 过个llm head输出y 卷积真的很快 参考一文通透想颠覆Transformer的Mamba&#xff1a;从SSM、HiPPO、S4到Mamba(被誉为Mamba最佳解读)_mamba模型-CSDN博客 偷了 Transformer的二次复…

Python函数:从基础到进阶的完整指南

在Python编程中&#xff0c;函数是构建高效、可维护代码的核心工具。无论是开发Web应用、数据分析还是人工智能模型&#xff0c;函数都能将复杂逻辑模块化&#xff0c;提升代码复用率与团队协作效率。本文将从函数基础语法出发&#xff0c;深入探讨参数传递机制、高阶特性及最佳…

Alpha3DCS公差分析系统_国产替代的3D精度管控方案-SNK施努卡

随着智能制造发展规划的深入推进&#xff0c;工业软件国产化替代已上升为国家战略。在公差分析这一细分领域&#xff0c;长期被国外软件垄断的局面正被打破。 苏州施努卡自主研发的Alpha3DCS&#xff0c;凭借完全自主知识产权和军工级安全标准&#xff0c;成为国内实现三维公差…

【自然语言处理与大模型】LlamaIndex的词嵌入模型和向量数据库

&#xff08;1&#xff09;嵌入模型的定义和作用 嵌入模型&#xff08;Embedding Model&#xff09;的本质在于将高维的、稀疏的数据转换为低维的、密集的向量表示&#xff0c;使得这些向量能够在数学空间中表达原始数据的语义信息。作用如下&#xff1a; 降维表示&#xff1a;…

长事务:数据库中的“隐形炸弹“——金仓数据库运维避坑指南

引言&#xff1a;凌晨三点的告警 "张工&#xff01;生产库又告警了&#xff01;"凌晨三点的电话铃声总是格外刺耳。运维团队发现数据库频繁进入单用户模式&#xff0c;排查发现某核心表的年龄值&#xff08;Age&#xff09;已突破20亿大关。经过一夜奋战&#xff0c…