更多精品文章分类
![a5cb9673ff6dac81b397abdb862a574f.png](https://i-blog.csdnimg.cn/blog_migrate/df32047069d08416eeb323310b3bff62.jpeg)
![7d14facae2965994ef727d1b7941aca0.png](https://i-blog.csdnimg.cn/blog_migrate/712df741aca4b72fcce6ce30b18e8e2b.jpeg)
第二章:先从看的到的入手—Activity
上一章成功创建了自己的第一个项目。这一章从页面入手,来进行学习。
2.1 Activity 是什么
Activity 是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用可以有零个或者多个 Activity。
2.2 Activity 的基本用法
自己手动创建一个没有 Activity 的新项目
2.2.1 手动创建 Activity
项目创建成功后,看到如下目录
![144416bb6911d2b50cc2bf2ce3216dda.png](https://i-blog.csdnimg.cn/blog_migrate/f4b259d884ebdb06137ef7d1de5db876.jpeg)
初始化项目.png
自己手动创建一个 Activity
右击 包名com.example.firstcode —>New—>Activity—>Empty Activity
这个时候会弹出一个对话框,然后不要选择 Generate LayoutFile 和Launcher Activity,然后点击 Finish
![50cac6f8a253c6298d9fd4d707e32214.png](https://i-blog.csdnimg.cn/blog_migrate/d913dc2dd99a93856b264756b90acf3b.jpeg)
创建Activity.png
如果勾选了 Generate Layout File 后会自动给我们的 Activity 创建一个 Layout 布局,勾选了 Launcher Activity 后表示自动将当前 Activity 设置为主 Activity。这些内容留给我们后面自己实现。
好了现在我们自己创建了一个 Activity 了,任何 Activity 都要重写 onCreate 方法。
public class MainActivity extends AppCompatActivity{ @Override protected void onCreate(Bundle saveInstanceState){ super.onCreate(savedInstanceState); }}
可以看到刚刚生成的 Activity 的代码内容很简单,在 onCreate方法中就是调用了父类的 onCreate 方法,这是默认的实现方式,后面很多的代码还需要我们自己来慢慢填满!
2.2.2 创建和加载布局
Android 的程序设计是讲究逻辑和视图分离的,最好要做到每个 Activity 都对应一个布局,布局是专门用来显示界面内容的。下面我们就来创建一个布局。
右击 app/src/main/res 目录——>New----->Directory,会弹出一个
新建目录的窗口,先创建一个 layout 的目录。然后对 layout 目录右键—>New-->Layout resource fie,这个时候就会弹出新建布局资源文件的窗口。
![c5813894d58a2e2905c82c53a5e9841a.png](https://i-blog.csdnimg.cn/blog_migrate/c5063f522b2487789837baf3a59420be.jpeg)
first_layout.png
这里我们这样取名fist_layout Root element 选择 LinearLayout 然后点击 OK
![66103d67b7f7bd452d234b0ca9fae60d.png](https://i-blog.csdnimg.cn/blog_migrate/dc158282560e3d7e649819752bda0fab.jpeg)
布局编辑器.png
看到图中的布局编辑器,这是 Android Studio 为我们提供的可视化布局编辑器,在这里我们可以浏览我们布局的样子。在窗口下方有两个切换卡,左边是 Design 右边是 Text 。Design 是可视化布局编辑器,这这里可以预览布局,也可以通过拖拽编辑布局。Text 是通过 xml 来编辑布局。下面切换到 Text 模式。
![777d8a8a53ef3ed2d2c68d574350792e.png](https://i-blog.csdnimg.cn/blog_migrate/05e9cc0c5c590f2cb824e2cdb493a157.jpeg)
布局编辑器_text.png
左边就是我们的布局代码部分,我们刚刚创建的时候选择了 LinearLayout 布局作为根布局,所以这里就是LinearLayout 。 下面对布局添加一个按钮。
<?xml version="1.0" encoding="utf-8"?>
简单介绍一下 Button 里面的几个属性:
- android:id 是给当前元素定义个唯一标识符,以便之后可以对这个元素在代码中进行操作。在 xml 中定义一个 id 的格式是:android:id=@+id/id_name 引用的格式@id/id_name
- Android:layout_width 指定当前元素的宽度。match_parent表示让当前元素和父元素一样宽。
- android:layout_height 指定当前元素高度。wrap_content 表示高度刚好可以包裹元素内容。
- android:text 指定了元素的显示内容。
关于布局的编写详细内容,会在下一章内容重点讲解。
![10983cde6ba1c257c9679d36707fc3f7.png](https://i-blog.csdnimg.cn/blog_migrate/7e36f91ec02584c378979d8db0302532.jpeg)
预览当前布局.png
预览一下这个布局,有可能你的和我的不太一样,没关系只要你的按钮显示出来就可以了。不一样的原因是我们的样式选择不一样。你可以看到上面有个 Light 这个是用来选择样式的,还有 小眼睛的标志 也有可能导致我们的预览效果看上去不一样。(这些东西在初学阶段不用去纠结)
布局已经加载出来了,下面我们要做的就是让 Activity 去加载这个布局。
回到 MainActivity 在 onCreate 方法中添加:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 用于给当前 Activity 加载一个布局 setContentView(R.layout.first_layout); }
我们在 onCreate 方法中添加了 setContentView() 方法来加载一个布局,需要传入一个布局的 id。Android 项目中任何的资源(res)包中的东西都会在 R 文件中生成一个对应资源的 id 因此我们可以通过 id 就可以将我们刚刚创建的布局加载到 Activity 中 了。
2.2.3 在 AndroidManifest 文件注册
任何 Activity 都需要在 AndroidManifest.xml 中注册才可以使用。实际上我们的 MainActivity 已经在 AndroidManifest 中注册了。
<?xml version="1.0" encoding="utf-8"?>
这是我们在创建 Activity 的时候,开发工具 Android Studio 自动给我们注册的。
注册方式:在 标签内容,通过 标签来注册。
介绍一下 中的属性,通过 android:name 来指明是哪一个 Activity。仅仅这样注册是不行的,因为没有给程序配置一个主 Activity,这样程序在运行的时候就不知道首先启动哪一个 Activity。
配置主 Activity 的方式:
在 activity 标签内添加 标签。如
这样就会指定当前 Activity 为主 Activity。
除此之外,使用 android:label 属性来指定 Activity 的标题栏中的内容,标题栏是显示在 Activity 最顶部的(当然可以去掉)。注意:给主 Activity 设置 label 后,启动器中应用程序显示的名称也会是这个。
如果没有指定主 Activity 的话,程序是无法运行的。
![9460680e7f60ad5743fe3c28f12ce3e5.png](https://i-blog.csdnimg.cn/blog_migrate/aebed3069a27154aa2dd8cfaac5d0047.jpeg)
没有主Activity.png
好了,经过上面的步骤后,我们就可以运行程序了。
![7827d8d38f50468203acc4f99178b69d.png](https://i-blog.csdnimg.cn/blog_migrate/515cd60e766431995af2492453e03bb0.jpeg)
首次运行.png
在页面最上面就是一个标题栏(如果你没有那是样式不一样,暂时忽略)。标题栏下面就是布局文件first_layout 编写的界面。
好了,现在我们已经掌握了如何创建一个 Activity 了下面继续学习我们在 Activity 中还可以做些什么!
2.2.4 在 Activity 中使用 Toast
Toast 是 Android 系统中一种非常好的提醒方式,可以将一些短小的信息通知给用户,这些信息一段时间后会自动消失,并且不会占用任何屏幕空间。
要想使用 Toast ,首先我们需要有一个触发事件。我们就设置点击按钮的时候弹出 Toast 吧。在 onCreate 中添加代码:
Button bt = findViewById(R.id.bt);bt.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view){ Toast.makeText(MainActivity.this,"显示内容