日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【鸿蒙 HarmonyOS】界面跳转 ( AbilitySlice 之间的界面跳转 | AbilitySlice 之间的值传递 )

發(fā)布時(shí)間:2025/6/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【鸿蒙 HarmonyOS】界面跳转 ( AbilitySlice 之间的界面跳转 | AbilitySlice 之间的值传递 ) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、AbilitySlice 之間的界面跳轉(zhuǎn)
  • 二、完整代碼示例
  • 三、運(yùn)行結(jié)果



參考文檔 :

  • Page Ability 基本概念
  • Page Ability 聲明周期
  • AbilitySlice 間導(dǎo)航
  • 跨設(shè)備遷移




一、AbilitySlice 之間的界面跳轉(zhuǎn)



代碼示例 GitHub 地址 : https://github.com/han1202012/HarmonyHelloWorld



1. Page Ability 設(shè)置 AbilitySlice :

創(chuàng)建兩個(gè) AbilitySlice , 初始狀態(tài)下進(jìn)入的是 MainAbilitySlice , 然后跳轉(zhuǎn)到 MainAbilitySlice2 ;


初始 AbilitySlice 如下 , 在 onStart ( ) 方法中 , 調(diào)用 super.setUIContent ( ) 方法設(shè)置 XML 布局文件 , 相當(dāng)于 Android 中的 setContentView ( ) 方法 ;

XML 布局文件使用 ResourceTable.Layout_ability_main 方式引用 ;

上述實(shí)際的布局文件是在 HarmonyHelloWorld\entry\src\main\resources\base\layout 目錄下的 ability_main.xml 布局文件 ;

引用時(shí)在 ability_main 文件名稱前 , 加上了 ResourceTable.Layout_ 前綴 , 相當(dāng)于 Android 中的 R.layout. 前綴 ;

// 設(shè)置布局文件 super.setUIContent(ResourceTable.Layout_ability_main);

2. 獲取按鈕組件 , 并設(shè)置點(diǎn)擊事件 :

在 AbilitySlice 中 , 調(diào)用 findComponentById ( ) 方法 , 可以獲取按鈕組件 ;

獲取的對(duì)象類型是 Component , 需要強(qiáng)轉(zhuǎn)為 Button 對(duì)象 ;

// 獲取 XML 布局中的 Button 按鈕 Button button = (Button) findComponentById(ResourceTable.Id_button);

設(shè)置按鈕點(diǎn)擊事件 : 調(diào)用 setClickedListener ( ) 方法 , 設(shè)置 Component.ClickedListener 類型的點(diǎn)擊監(jiān)聽器 , 按鈕被點(diǎn)擊后 , 會(huì)自動(dòng)回調(diào) onClick ( ) 方法 ;

// 設(shè)置 Button 按鈕點(diǎn)擊事件button.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {}});

3. 獲取 Text 組件 , 并設(shè)置顯示內(nèi)容 : 調(diào)用 findComponentById ( ) 方法獲取 Text 組件 , 需要強(qiáng)制轉(zhuǎn)換 ;

調(diào)用 Text 組件的 setText ( ) 方法 , 設(shè)置組件顯示的文字內(nèi)容 ;

// 獲取 Text 文字顯示組件Text text = (Text) findComponentById(ResourceTable.Id_text);// 獲取 Intent 中的數(shù)據(jù) , 并顯示到界面中text.setText("頁面 2 數(shù)據(jù) : " + intent.getIntParam("DATA", 0));

4. 頁面跳轉(zhuǎn) :

① 創(chuàng)建 AbilitySlice : 創(chuàng)建要跳轉(zhuǎn)到的 AbilitySlice 對(duì)象 ;

② 創(chuàng)建 Intent : 用于數(shù)據(jù)傳遞 ;

③ 調(diào)用 present ( ) 方法 : 傳入 AbilitySlice 與 Intent 參數(shù) , 即可完成 AbilitySlice 界面跳轉(zhuǎn) ;

// 1. 初始化要跳轉(zhuǎn)的界面AbilitySlice slice = new MainAbilitySlice2();// 2. 初始化傳遞的 Intent 意圖Intent intent = new Intent();intent.setParam("DATA", 888);// 3. 跳轉(zhuǎn)到 MainAbilitySlice2 界面present(slice, intent);



二、完整代碼示例



MainAbilitySlice 源碼 :

package com.example.harmony.slice;import com.example.harmony.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.components.Button; import ohos.agp.components.Component; import ohos.agp.components.Text;public class MainAbilitySlice extends AbilitySlice {@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);// 獲取 XML 布局中的 Button 按鈕Button button = (Button) findComponentById(ResourceTable.Id_button);// 設(shè)置 Button 按鈕點(diǎn)擊事件button.setClickedListener(new Component.ClickedListener() {@Overridepublic void onClick(Component component) {// 初始化要跳轉(zhuǎn)的界面AbilitySlice slice = new MainAbilitySlice2();// 初始化傳遞的 Intent 意圖Intent intent = new Intent();intent.setParam("DATA", 888);// 跳轉(zhuǎn)到 MainAbilitySlice2 界面present(slice, intent);}});}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);} }

MainAbilitySlice 的 XML 布局文件 :

<?xml version="1.0" encoding="utf-8"?> <DirectionalLayoutxmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"ohos:orientation="vertical"><Textohos:id="$+id:text"ohos:height="match_content"ohos:width="match_content"ohos:background_element="$graphic:background_ability_main"ohos:layout_alignment="horizontal_center"ohos:text="頁面 1"ohos:text_size="50"/><Buttonohos:id="$+id:button"ohos:height="match_parent"ohos:width="match_content"ohos:layout_alignment="bottom|horizontal_center"ohos:text="跳轉(zhuǎn)到 2 頁面"ohos:text_size="50"/></DirectionalLayout>

MainAbilitySlice2 源碼 :

package com.example.harmony.slice;import com.example.harmony.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.components.Button; import ohos.agp.components.Component; import ohos.agp.components.Text;public class MainAbilitySlice2 extends AbilitySlice {@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main2);// 獲取 Text 文字顯示組件Text text = (Text) findComponentById(ResourceTable.Id_text);// 獲取 Intent 中的數(shù)據(jù) , 并顯示到界面中text.setText("頁面 2 數(shù)據(jù) : " + intent.getIntParam("DATA", 0));}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);} }

MainAbilitySlice2 的 XML 布局文件 :

<?xml version="1.0" encoding="utf-8"?> <DirectionalLayoutxmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"ohos:orientation="vertical"><Textohos:id="$+id:text"ohos:height="match_content"ohos:width="match_content"ohos:background_element="$graphic:background_ability_main"ohos:layout_alignment="horizontal_center"ohos:text="頁面 2"ohos:text_size="50"/></DirectionalLayout>



三、運(yùn)行結(jié)果



運(yùn)行后初始主界面 :


點(diǎn)擊 " 跳轉(zhuǎn)到 2 頁面 " 按鈕 ;

總結(jié)

以上是生活随笔為你收集整理的【鸿蒙 HarmonyOS】界面跳转 ( AbilitySlice 之间的界面跳转 | AbilitySlice 之间的值传递 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。