活动官方的概念是指一种包含用户界面的组件,主要用于和用户进行交互。通俗理解一个活动就是一个页面的意思,学过web开发的都知道一个网站都是由很多个页面组成,这里的活动指的就是交互页面的控制器或后台程序。
使用android studio 创建活动时会自动给你创建以及添加相关配置,这里为了更好的了解活动的创建选择手动创建一个活动。在android studio新建一个android项目,我这里项目名叫做ActivityTest包名我使用默认(com.example.activitytest)的,下一步创建活动,android studio 提供了一些可选择的活动,因为是要自己手动创建所以选择Add No Activity,点击Finish,等待Gradle构建完成后项目创建成功了。
开始创建活动(Activity):右击com.example.tenderness.activitytest → New → Activity → Empty Activity,会弹出一个创建活动的会话框,给活动取个名称,并不要勾选Generate Layou File 和Launcher Activity 这两个选项。
Generate Layou File自动创建布局文件
Launcher Activity 设置为主活动
任何活动都会应该重写Activity的onCreate()方法,可以看出来onCreate()方法就是调用父类的onCreate()方法,内部可以加入自己的一些逻辑去实现。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
Android程序的设计讲究逻辑与视图分离的,每个活动都对应一个布局,布局就是用来显示内容的,创建布局跟创建活动差不多,只是布局存放的文件位置跟活动是不一致的,布局存放在app/src/main/res下面,查看res下面是否存在layout的目录,一般创建空项目时是不会给你自动生成这个文件夹的,没有的话就在res下新建一个layout文件夹,已经存在的话就右键 → Layout resource file去新建一个布局。
点击ok创建完成。
前面我们手动新建了一个活动,我们还需要把新建的活动关联一个布局,我们可以通过setContentView()方法来给活动加载一个布局。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
}
这里有人会疑惑R.layout.finres_layout是什么意思,项目中添加任何资源都会在R文件中生成一个相应的资源id,这里这句代码的意思就是在R文件中获取到finres_layout.xml布局的id,然后将值如setContentView()方法从而加载相应布局。
所有的活动都要在AndroidMainfest.xml中进行注册才能生效。
活动的注册声明要放在
这个时候的程序任然是不能运行的,还需要配置个主活动,因为不配置主活动的话程序运行时不知道先运行谁,声明主活动只需要在注册的活动节点下面添加一下节点:
除了可以声明主活动外,还可以使用android:label指定活动的标题,给主活动指定的lable不仅会成为标题栏中的内容,还会成为启动器中应用程序的名称;
这个时候我们可以正常运行这个程序了。