Android——活动的基本用法

活动是什么?

活动就是一种可以包含用户界面的组件,用于和用户交互,也就是我们能看见的那些界面。活动可以是嵌套的,也就是说,一个活动可以包含多个活动。

一个app可以有活动也可以没有活动(比如什么银联安全服务app,没有界面,只是充当绿叶的功用)


活动的基本用法

我们在AS新建一个默认的空活动,Java代码如下:

复制代码
 1 import android.support.v7.app.AppCompatActivity;
 2 import android.os.Bundle;
 3 
 4 public class Main3Activity extends AppCompatActivity
 5 {
 6 
 7     @Override
 8     protected void onCreate(Bundle savedInstanceState)
 9     {
10         super.onCreate(savedInstanceState);
11         setContentView(R.layout.activity_main3);
12     }
13 }
复制代码

可以看到,一个活动必须有OnCreate方法。首先在这个方法调用了父类的的OnCreate(),然后setContentView()见名知意,是用来加载布局(xml)。也就是说,这句话可以将活动与布局相关联。

那么相应的默认xml布局文件如下()为了便于描述我添加了一个Button,也就是按钮:

复制代码
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3     android:layout_width="match_parent"
4     android:layout_height="match_parent">
5     <Button
6         android:layout_width="wrap_content"
7         android:layout_height="wrap_content" 
8         android:id="@+id/button"/>
9 </LinearLayout>
复制代码

 XML的基本语法结构:

第一行是XML声明,它定义了XML版本(version=1.0)和使用的编码(UTF-8),我们一般不管它,默认就好。

第二行描述的是文件的根元素,说明了本文档大的框架是LinearLayout,里面怎么折腾我不管,我这个文件就是LinearLayout布局。

第三行,是根的子元素。一个根元素可以包含多个子元素,这样就实现了嵌套,可以实现复杂的布局。当然,子元素也可以是以LinearLayout为根元素的子元素。

一个XML文件的结构大概就是这样,下面再稍微具体说下每一部分。

我们可以发现,标签一定是成对出现的。而且结构大概像下面这样:

<Element>xxx</Element>

或者

<Element/>两种格式,那么这两种格式有什么区别呢?

Element是一个元素,它里面不仅可以包含名称(LInearLayout),也可以包含属性(layout_height,layout_width)。xxx代表这个元素包含的内容,也就是有没有其他元素。当xxx为空时,我们可以将第一种方式简写为第二种方式,也就是“自闭合元素”。就像Button元素,这个元素里面不包含其他元素,所以我们可以使用简写方式。当然,我们用普通方式也是没问题的:

1 <Button
2     android:id="@+id/ad"
3     android:layout_height="wrap_content"
4     android:layout_width="wrap_content">
5 </Button>

 接下来说下 xmlns:android="http://schemas.android.com/apk/res/android"这句话是什么意思。

xmlns,就是xml文件的命名空间(XML namespaces)。为的是避免元素命名起冲突,用这个标示可以指定某个空间下的某个特定元素而不起冲突。

Android中的命名空间有3种:

android命名空间:xmlns:android="http://schemas.android.com/apk/res/android;
tools命名空间:xmlns:tools="http://schemas.android.com/tools;
自定义命名空间:xmlns:app="http://schemas.android.com/apk/res-auto"

1  <Button
2      android:layout_width="wrap_content"
3      android:layout_height="wrap_content"
4      android:id="@+id/button" />

android:id="@+id/button"是为这个按钮定义一个唯一id标示,(@+xx/xxx是添加标示,@xx/xxx是引用标示),android:layout_width是当前元素的宽度,wrap_content值包裹住里面的内容,而match_parent指和其父布局一样的高度,android:layout_height同理。

Java文件中的 setContentView(R.layout.activity_main3);就是在Java文件里面引用XML文件元素的方法,布局id都被自动添加到R文件当中了,我们只需要调用R.id方法就可以了。

原文地址:https://www.cnblogs.com/znjy/p/14907567.html