“Hello,Jetpack”:构建您的第一个Jetpack应用程序

本文档将向您介绍构建基于Jetpack的简单应用程序的基本过程。

设置你的应用程序

执行以下步骤将应用程序设置为使用Jetpack:

  1. 启动Android Studio 3.2或更高版本,并一如既往地在“ 创建Android项目”和“ 定位Android设备”中输入信息。

    如果您在Kotlin中编写应用程序,请记得在Create Android Project屏幕上勾选Include Kotlin支持框 。

  2. 在“ 创建Android项目”屏幕后,在 Add an Activity to Mobile 的页面上将为您提供用于启动项目的各种模版, 我们选择Activity & Fragment + ViewModel 模版,然后单击Next,如图所示:

  3. 在 **Configure Activity ** 页面上填写对应的 Name 名称,然后点击 Finish ,如图所示:

打开我们的java项目文件夹,如图所示,该项目最初包含三大类:MainActivity,MainFragment 和 MainViewModel
  • MainActivity 是你的应用程序的入口点。它是一个存根,Activity 用作应用程序初始屏幕中显示的片段容器。

  • MainFragment 是 Fragment 您在应用中使用的初始存根 。

  • MainViewModel 是 ViewModel 您在应用中使用的初始存根 。

利用Jetpack

有了这些部分,我们就可以实现 ViewModel 对象了,如图所示

    class StartViewModel : ViewModel() {private val _data = MutableLiveData<String>()val data: LiveData<String>get() = _datainit {_data.value = "Hello, Jetpack!"}}
复制代码

如果您的应用包含多个页面,则可以添加 Navigation 该类以实现fragments的导航触发器。以下代码是实现导航触发器的示例:

    // Set up a click listener on the login buttonview?.findViewById<Button>(R.id.navigate_bt)?.setOnClickListener {// Navigate to the login destinationview?.let { Navigation.findNavController(it).navigate(R.id.end_action) }
复制代码

如果您的应用需要本地访问SQLite数据,您还可以添加 Room 持久性库。如果您的应用需要在单个屏幕上显示大量数据,则应考虑使用 分页库。

配置Gradle文件

要使用Jetpack,您必须在gradle文件中添加适当的代码。因为此应用程序使用 ViewModel, LiveData 和NavigationController,其Gradle文件包含以下代码:

       // LiveData + ViewModelimplementation "android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion"// Navigationimplementation 'androidx.navigation:navigation-fragment:' + rootProject.navigationVersionimplementation 'androidx.navigation:navigation-ui:' + rootProject.navigationVersion
复制代码

“Hello,Jetpack”:构建您的第一个Jetpack应用程序相关推荐

  1. r语言r-shiny_使用Shiny和R构建您的第一个Web应用程序仪表板

    r语言r-shiny by AMR 通过AMR 使用Shiny和R构建您的第一个Web应用程序仪表板 (Build your first web app dashboard using Shiny a ...

  2. chrome扩展crx构建_如何构建您的第一个Chrome扩展程序

    chrome扩展crx构建 "Sit up straight!" my mom used to yell at me when I am fixated on my laptop ...

  3. 做事用人 用人做事_做事:构建我的第一个Web应用程序的经验教训

    做事用人 用人做事 On the 5th of June, 2020, after almost two weeks of (re)learning javascript, fixing bugs, ...

  4. Android 我的第一个Jetpack Compose应用

    目录 1. 背景 2. Jetpack Compose 是什么? 3. 开始前的准备 4. 创建DEMO 4.1 New Project 4.2 项目配置 5. 项目整体变化 5.1 布局部分 5.2 ...

  5. 构建一个移动应用程序要花多少钱?

    构建一个移动应用程序要花多少钱? How much does it cost to build a mobile app? 不幸的是,对于一个移动应用程序的开发成本应该是多少这个问题,没有一个单一的答 ...

  6. R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果、LIME解释器进行模型预测结果解释并可视化

    R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果.LIME解释器进行模型预测结果解释并可视化 ...

  7. angular1.2.27_Angular 8 + Spring Boot 2.2:立即构建一个CRUD应用程序!

    angular1.2.27 "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权 ...

  8. Angular 8 + Spring Boot 2.2:立即构建一个CRUD应用程序!

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 如果您已 ...

  9. mysql crud_如何使用Laravel和MySQL构建您的第一个CRUD应用

    mysql crud Throughout this tutorial for beginners you'll learn to use Laravel 5.7 - the latest versi ...

最新文章

  1. Qt Quick中的The Visual Canvas
  2. /dev/zero和/dev/null的区别
  3. Android Studio is on board
  4. Java NIO学习笔记 三 散点/收集 和频道转换
  5. 百度鹰眼html打开,BMap:WEB 服务API
  6. 高通推出骁龙870 5G移动平台:7nm工艺 摩托罗拉首发
  7. 计算机考试没考好的检讨书,关于考试没考好检讨书(精选5篇)
  8. [转载] Numpy_索引操作
  9. 【知识图谱】知识图谱嵌入模型简介
  10. Java加密与解密笔记(二) 对称加密
  11. 2阶魔方矩阵matlab,matlab魔方矩阵
  12. 香港长和集团开创P2F金融理财新征程
  13. phpWord 读取word模板,替换相应变量
  14. ubuntu禁用smap
  15. 【蓝桥杯】入门训练 Fibonacci数列
  16. ROS2与C++入门教程-在C++包里增加python支持
  17. 万洲金业集结全面行业优势 打造贵金属产品理财矩阵
  18. java 空白图片_图片文件打印空白的解决办法
  19. skywalking源码--探针插件工程结构
  20. 人工神经网络评价法案例_人工神经网络应用实例

热门文章

  1. 自学python有哪些方向-机械想自学python可以学习哪个方向?
  2. python培训学校-西安有没有好点的Python培训学校
  3. python语言入门z-【python】编程语言入门经典100例--22
  4. python简单代码input-Python简单程序的练习
  5. python下载教程1001python下载教程-Python知识圈
  6. 使用torchvision.models.inception_v3(pretrained=True)加载预训练的模型每次都特别慢
  7. python内置collections模块的使用
  8. python图片通道分离
  9. matlab溢出的标志inf,关于C#:溢出与信息
  10. LeetCode Excel Sheet Column Number(进制转换问题)