一、活动是啥
包含用户界面的组件,用于和用户交互。
二、探究活动的基本用法
先创建一个Android空项目,即没有活动的项目
1、手动创建活动
在源码目录创建活动
先不创建布局文件
然后就会发现,AS自动生成了代码:
2、创建&加载布局
(1)布局文件
在res
目录创建layout
在layout
目录下新建layut resource file
新建完成:
切换到文本编辑器,因为选择的根元素是LinearLayout
,所以可以看到只有这个元素:
(2)添加一个按钮
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id='@+id/button_1'
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button 1"
/>
</LinearLayout>
这样添加了一个Button元素,并在内部添加了几个属性:
android:id
:定义唯一标识符+id
:定义id要写+
,引用的时候就能@id/id_name
android:layout_width
:指定元素宽度,match_parent
和父元素一样宽android:layout_height
:指定元素高度,wrap_content
和子元素一样高android:text
:元素上文字内容
预览一下:
(3)在活动中加载布局
在onCreate()
方法中加入以下代码:
调用setContentView()
方法使当前活动加载布局,一般传入布局文件的id
,项目中创建的任何资源都会在R文件中生成一个资源id,调用时直接R.layout.first_layout
就可以得到first_layout.xml
布局的id
3、在配置文件中注册
新建的活动会被AS自动在AndroidManifest.xml
中注册:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.day01_empty">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".FirstActivity"></activity>
</application>
</manifest>
可以看到,活动声明在<application>
标签内,用<activity>
标签注册,在<activity>
标签中,用android:name
指定具体活动,而活动的前缀在前面package
中写了,所以这里只写.FirstActivity
,而不是完整的com.example.day01_empty.FirstActivity
4、配置主活动
启动时要通过主活动启动,即需要在<activity>
标签中加入<intent-filter>
标签,并在这个标签内加入两句声明:
<activity android:name=".FirstActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
5、运行
其中标题栏的内容可以通过<application>
中的android:label=""
指定。
附:埋的坑
- 创建的任何资源都会在R文件中生成一个资源id,那么这个R文件在哪?个人猜测
R
是指res