成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HarmonyOS實戰—實現相親APP

系統 OpenHarmony
本篇帶給大家運用HarmonyOS打造一款相親APP,愿社區的每一位單身的同志都能通過逛社區找到心儀的對象。

[[419696]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

簡易版 相親APP

實現如下效果:

如果喜歡就點擊下面的“聯系方式”,不喜歡就點擊“下一個”

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區
HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

1. 布局實現

新建項目:MakeFriendsApplication

把以下九個girl圖片復制到 media 文件夾下

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區
HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

有需要上面圖片素材的小伙伴可以自取:https://www.aliyundrive.com/s/j59dy5redPR

當然也可以自己在網上找,圖片信息如下:

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

可以在上面的實現看到布局是由:一個圖片+三個文本+兩個按鈕 組成的

布局實現:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <DirectionalLayout 
  3.     xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  4.     ohos:height="match_parent" 
  5.     ohos:width="match_parent" 
  6.     ohos:alignment="center" 
  7.     ohos:orientation="vertical"
  8.  
  9.     <Image 
  10.         ohos:id="$+id:img" 
  11.         ohos:height="match_content" 
  12.         ohos:width="match_content" 
  13.         ohos:image_src="$media:girl1"/> 
  14.  
  15.     <Text 
  16.         ohos:id="$+id:name" 
  17.         ohos:height="50vp" 
  18.         ohos:width="150vp" 
  19.         ohos:text="姓名:王美花" 
  20.         ohos:text_size="20fp"/> 
  21.  
  22.     <Text 
  23.         ohos:id="$+id:age" 
  24.         ohos:height="50vp" 
  25.         ohos:width="150vp" 
  26.         ohos:text="年齡:29" 
  27.         ohos:text_size="20fp"/>  
  28.  
  29.     <Text 
  30.         ohos:id="$+id:address" 
  31.         ohos:height="50vp" 
  32.         ohos:width="150vp" 
  33.         ohos:text="地址:南京" 
  34.         ohos:text_size="20fp"/> 
  35.      
  36.     <Button 
  37.         ohos:id="$+id:next" 
  38.         ohos:height="50vp" 
  39.         ohos:width="150vp" 
  40.         ohos:background_element="#92D050" 
  41.         ohos:text="下一個" 
  42.         ohos:text_size="20fp" 
  43.         ohos:text_color="#FFFFFF"/> 
  44.  
  45.     <Button 
  46.         ohos:id="$+id:get" 
  47.         ohos:height="50vp" 
  48.         ohos:width="150vp" 
  49.         ohos:background_element="#92D050" 
  50.         ohos:text="獲取聯系方式" 
  51.         ohos:text_size="20fp" 
  52.         ohos:text_color="#FFFFFF" 
  53.         ohos:top_margin="10vp"/> 
  54.  
  55. </DirectionalLayout> 

運行:

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

2. 核心業務邏輯實現

先找到組件對象

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

業務:點擊了按鈕“下一個”就要修改上面的信息,能不能把上面的信息看作成一個整體的對象?

現在有9個相親對象,點擊“下一個”的時候,就會隨機把一個相親對象的信息去顯示在上面。

創建一個Javabean類去描述女朋友信息,有了Javabean類后才能在代碼中創建對象

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

在domain中新建類名為:GirlFriend,在類中的屬性有哪些?

如:圖片、姓名、地址、年齡都是GirlFriend類中的屬性

在資源管理器中獲取圖片,發現girl圖片是int類型的

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

所以在JavaBean中GirlFriend類中圖片類型使用int類型

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

其他屬性使用對應的類型

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

最后生成標準的JavaBean即可

  1. package com.xdr630.makefriendsapplication.domain; 
  2.  
  3. public class GirlFriend { 
  4.     //照片 
  5.     private int photoID; 
  6.     //姓名 
  7.     private String name
  8.     //年齡 
  9.     private int age; 
  10.     //地址 
  11.     private String address; 
  12.  
  13.     //空參 + 全參:alt + insert 
  14.  
  15.     public GirlFriend() { 
  16.     } 
  17.  
  18.     public GirlFriend(int photoID, String nameint age, String address) { 
  19.         this.photoID = photoID; 
  20.         this.name = name
  21.         this.age = age; 
  22.         this.address = address; 
  23.     } 
  24.  
  25.     public int getPhotoID() { 
  26.         return photoID; 
  27.     } 
  28.  
  29.     public void setPhotoID(int photoID) { 
  30.         this.photoID = photoID; 
  31.     } 
  32.  
  33.     public String getName() { 
  34.         return name
  35.     } 
  36.  
  37.     public void setName(String name) { 
  38.         this.name = name
  39.     } 
  40.  
  41.     public int getAge() { 
  42.         return age; 
  43.     } 
  44.  
  45.     public void setAge(int age) { 
  46.         this.age = age; 
  47.     } 
  48.  
  49.     public String getAddress() { 
  50.         return address; 
  51.     } 
  52.  
  53.     public void setAddress(String address) { 
  54.         this.address = address; 
  55.     } 

創建好了Javabean,就可以創建一個集合裝9個相親的對象,使用集合來存儲了,ArrayList,泛型就可以直接寫創建好的GirlFriend 類

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

在以后學習了和服務器交互之后,這些數據都是從服務器獲取的,就不是一個一個添加了

下面就是手動添加數據來源

創建一個女朋友對象(new GirlFriend )并添加到 list 當中

為了方便,省的去查看Javabean中屬性的排序,Ctrl + P 就可以查看參數了

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

添加完成9個對象

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

接著給按鈕添加點擊事件,兩個按鈕都要添加,分別是“next”和“get”按鈕

實現本類中點擊事件

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

當next按鈕被點擊后,就會執行本類中的onClick方法

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

get 按鈕同上也要添加單擊事件

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

然后在 onClick 方法中判斷點擊是 next 按鈕 或 get 按鈕

因為在 onClick 方法中要用到按鈕的對象,所以把按鈕的對象提升為 成員變量 才能在onClick方法中被訪問的到,用到哪個就提哪個,這些組件都用的到,所以都提為成員變量。

在下面onClick方法當中,要從集合中獲取girl信息,所以集合也要提為成員變量

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

Random對象也放在成員位置,表示在程序啟動之后就創建了一個,如果放在onClick方法中,當點擊一次就創建一次,內存冗余。

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

MainAbilitySlice

  1. package com.xdr630.makefriendsapplication.slice; 
  2.  
  3. import com.xdr630.makefriendsapplication.ResourceTable; 
  4. import com.xdr630.makefriendsapplication.domain.GirlFriend; 
  5. import ohos.aafwk.ability.AbilitySlice; 
  6. import ohos.aafwk.content.Intent; 
  7. import ohos.agp.components.Button; 
  8. import ohos.agp.components.Component; 
  9. import ohos.agp.components.Image; 
  10. import ohos.agp.components.Text; 
  11.  
  12. import java.util.ArrayList; 
  13. import java.util.Random; 
  14.  
  15. public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener { 
  16.  
  17.         Image img; 
  18.         Text name
  19.         Text age; 
  20.         Text address; 
  21.         Button next
  22.         Button get; 
  23.  
  24.         ArrayList<GirlFriend> list = new ArrayList<>(); 
  25.  
  26.     @Override 
  27.     public void onStart(Intent intent) { 
  28.         super.onStart(intent); 
  29.         super.setUIContent(ResourceTable.Layout_ability_main); 
  30.  
  31.         //1.找到組件對象 
  32.         img = (Image) findComponentById(ResourceTable.Id_img); 
  33.         name = (Text) findComponentById(ResourceTable.Id_name); 
  34.         age = (Text) findComponentById(ResourceTable.Id_age); 
  35.         address = (Text) findComponentById(ResourceTable.Id_address); 
  36.         next = (Button) findComponentById(ResourceTable.Id_next); 
  37.         get = (Button) findComponentById(ResourceTable.Id_get); 
  38.         //2.創建一個集合裝9個相親的對象 
  39.  
  40.  
  41.         //添加9個對象 
  42.         //在以后學習了和服務器交互之后,這些數據都是從服務器獲取的 
  43.         list.add(new GirlFriend(ResourceTable.Media_girl1,"王美花1",29,"南京")); 
  44.         list.add(new GirlFriend(ResourceTable.Media_girl2,"王美花2",30,"上海")); 
  45.         list.add(new GirlFriend(ResourceTable.Media_girl3,"王美花3",31,"武漢")); 
  46.         list.add(new GirlFriend(ResourceTable.Media_girl4,"王美花4",28,"長沙")); 
  47.         list.add(new GirlFriend(ResourceTable.Media_girl5,"王美花5",25,"南昌")); 
  48.         list.add(new GirlFriend(ResourceTable.Media_girl6,"王美花6",26,"杭州")); 
  49.         list.add(new GirlFriend(ResourceTable.Media_girl7,"王美花7",23,"深圳")); 
  50.         list.add(new GirlFriend(ResourceTable.Media_girl8,"王美花8",22,"北京")); 
  51.         list.add(new GirlFriend(ResourceTable.Media_girl9,"王美花9",24,"廣州")); 
  52.  
  53.         //3.給按鈕添加點擊事件 
  54.         next.setClickedListener(this); 
  55.         get.setClickedListener(this); 
  56.  
  57.     } 
  58.  
  59.     @Override 
  60.     public void onActive() { 
  61.         super.onActive(); 
  62.     } 
  63.  
  64.     @Override 
  65.     public void onForeground(Intent intent) { 
  66.         super.onForeground(intent); 
  67.     } 
  68.  
  69.     Random r =  new Random(); 
  70.  
  71.     @Override 
  72.     public void onClick(Component component) { 
  73.         if (component == next){ 
  74.             //點擊的是下一個 --- 換一個girl的信息 
  75.             //從集合中獲取一個隨機的girl的信息 
  76.  
  77.             //獲取一個隨機索引 
  78.             int randomIndex = r.nextInt(list.size()); 
  79.             //通過隨機索引獲取隨機girl信息 
  80.             GirlFriend girlFriend = list.get(randomIndex); 
  81.             //把隨機出來的信息設置到界面當中 
  82.             img.setImageAndDecodeBounds(girlFriend.getPhotoID()); 
  83.             name.setText("姓名:" + girlFriend.getName()); 
  84.             age.setText("年齡:" + girlFriend.getAge()); 
  85.             address.setText("地址:" + girlFriend.getAddress()); 
  86.  
  87.  
  88.         }else if (component == get){ 
  89.             //獲取聯系方式 
  90.             //擴展:可以跳轉到界面讓用戶充值界面,充值后才能看到girl信息 
  91.         } 
  92.     } 

運行:

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

點擊“下一個”

HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區
HarmonyOS實戰—實現相親APP-鴻蒙HarmonyOS技術社區

當點擊“下一個”按鈕時,信息也會隨之一起獲取的到,所以有需求的小伙伴可以擴展下,當點擊“下一個”按鈕時信息是隱藏的,只有當點擊“獲取聯系方式”時才能顯示出對應的信息,或也可以添加充值頁面,當點擊“獲取聯系方式”時,就跳轉到充值頁面,只有充值完后才能看到對應的信息。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2015-09-18 10:44:54

大數據相親

2022-09-01 11:04:47

PythonApp

2010-07-26 15:30:43

面試

2010-12-10 11:26:56

“相親式”招聘

2015-05-30 10:04:24

線下公開課51CTO沙龍MDSA

2024-07-26 16:17:22

2014-12-17 10:29:59

混合應用Hybrid App開發實戰

2020-11-05 10:05:25

App

2021-01-14 09:50:26

鴻蒙HarmonyOSAPP

2021-07-05 14:29:28

鴻蒙HarmonyOS應用

2010-06-24 10:59:56

APP-V虛擬化應用虛擬化

2010-06-23 10:09:31

APP-V虛擬化應用虛擬化

2020-08-25 15:17:12

戴爾

2013-03-19 10:33:48

大數據相親數據分析

2021-01-11 11:04:49

鴻蒙HarmonyOS應用開發

2009-01-08 11:05:55

學賽 IT教育

2024-02-19 15:40:37

鴻蒙App備案阿里云

2021-08-10 15:37:34

鴻蒙HarmonyOS應用

2019-01-22 15:26:48

APP會員自動續費簽約

2024-09-04 08:09:51

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 夜夜夜久久久 | 国产免费一区二区三区网站免费 | 国产精品1 | 精品精品视频 | 久久99国产精品久久99果冻传媒 | 日日干夜夜操 | 久久成人免费观看 | 精品欧美一区二区在线观看视频 | 国产精品久久av | 在线中文字幕av | 成人精品一区二区三区中文字幕 | 亚洲一二三区精品 | 欧美精品一区二区在线观看 | 九九99精品| 亚洲视频三 | 欧美激情 一区 | 国产精品毛片一区二区三区 | 中文字幕乱码一区二区三区 | 国产一级大片 | 91xxx在线观看 | 91精品国产91久久久久游泳池 | 在线观看国产 | 91av在线免费看 | 欧美日韩亚洲一区二区 | 成人精品国产一区二区4080 | 国产精品自拍视频 | 欧美精品在线一区二区三区 | 性高湖久久久久久久久aaaaa | 天天操精品视频 | 久久久天天 | 精品视频在线免费观看 | 天天草av | 99tv成人影院 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 亚洲成人一区 | 日韩在线精品强乱中文字幕 | 99久久免费精品国产男女高不卡 | 成人天堂| 一区二区三区国产在线观看 | 香蕉一区| 精品亚洲视频在线 |