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.pswp.cn/news/904862.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904862.shtml
英文地址,請注明出處:http://en.pswp.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…