Android入门 您所在的位置:网站首页 momoda是什么意思 Android入门

Android入门

2024-06-12 19:15| 来源: 网络整理| 查看: 265

1.什么是 Activity

Actuvity 是最容易吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用中可以包含0个或多个 Activity,但不包含任何 Activity 的应用程序是无法被用户看见的。

2.Activity 的基本用法 2.1 手动创建 Activity

点击 Empty Activity 创建名为 FirstActivity 的 Activity image

image 勾选 Generate Layout File 表示会创建一个对应的布局文件,勾选Launcher Activity 表示会将 FirstActivity 设置为当前项目的主 Activity,点击Finish。

2.2 创建布局和加载布局

右键 app/src/main/res 目录->New->Directory,会弹出一个新建目录的窗口,现在这里创建一个名为 layout 的目录,然后对着 layout 目录右键->New->Layout resource file,优惠弹出一个新建布局资源文件的窗口,我们将这个布局文件命名为first_layout,根元素默认选择为 LinearLayout。

image

image 创建完成之后可以在右侧看到预览窗口,可以点击对应按钮切换到对应的页面,在代码区域会生成如下代码

2.2.1 在布局中添加按钮

image

2.2.2 加载布局文件 class FirstActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 在此加载布局文件 setContentView(R.layout.first_layout) } }

项目中每添加一个元素都会在 R 文件中响应的生成一个资源 id,因此刚才添加的布局文件的 id 就已经添加到了 R 文件中,所以可以通过R.layout.first_layout找到 first_layout.xml 的 id,然后将这个值传入到 setContentView() 方法即可。

2.3 在 AndoirdManifest.xml 文件中注册

可以看到,Activity 的注册声明要放在 标签中,这里通过 标签来对 Activity 进行注册。在中通过 name 属性指定具体注册哪一个 Activity,那么这里填入 .FirstActivity ,前面加 “.” 是因为最外层已经声明了 package 属性,在 name 的地方添加.FirstActivity 即可通过全类名找到 FirstActivity。

经过了前面的步骤已经注册了 Activity,但是还不能运行程序,因为需要配置 Activity,也就是说需要指定最先启动哪个 Activity。所以需要在 标签中添加 intent-filter 标签,然后在 intent-filter 标签中添加 和 两行声明即可,修改后的代码如下所示:

这样,FirstActivity 就成了这个应用的主 Activity 了,点击应用图标最先打开的就是这个 Activity。但是如果没有在应用中声明任何一个 Activity 作为主 Activity,这个程序依然是可以安装的,只是无法在启动器中看到这个应用程序。这种程序通常作为第三方服务供其它应用在内部进行调用。

运行效果:

image

2.4 在程序中使用 Toast

Toast 是 Adnroid 系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息在一段时间内会自动消失,并且不会占用任何屏幕空间。

2.4.1 定义弹出 Toast 的触发点 class FirstActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 在此加载布局文件 setContentView(R.layout.first_layout) val button1: Button = findViewById(R.id.button1) button1.setOnClickListener { // 使用 Toast Toast.makeText(this, "You clicked Button 1", Toast.LENGTH_SHORT).show() } } }

在 Activity 中通过 findViewById 找到布局文件中定义的元素,由于该方法会返回一个继承自 View 的泛型对象,因此 Kotlin 无法推导出得到的是什么类型的控件,所以需要将 button 显式的声明为 Button 类型,接着通过 setOnClickListener 注册一个监听器,点击按钮就会触发 onClick() 方法,所以在此书写代码逻辑,创建 Toast 首先需要传入三个参数,第一个是 Context,在这里传入 this 即可,第二个参数是显示的文本内容,第三个参数是 Toast 显示的时长,点击按钮后会有如下效果:

image

上面的代码实现是通过findViewById找到的控件,但是当控件过多时就会频繁的写这段代码,在使用 Java 开发时因为无法避免这种写法所以产生了 ButterKnife 之类的第三方开源库,但是在 Kotlin 中这个问题就不复存在了,因为使用 Kotlin 编写的 Android 程序在 app/build.gradle 文件中引入了 kotlin-android-extensions 插件,这个插件会根据布局文件中定义的控件的 id 自动生成一个具有相同名字的变量,我们可以直接使用,从而替代 findViewById。

image

class FirstActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 在此加载布局文件 setContentView(R.layout.first_layout) // val button1: Button = findViewById(R.id


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有