1、Activity简要概述
Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件。
在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。 ————来自百度百科
2、创建一个Activity
我们需要再新建一个 Android 项目,项目名可以叫做 ActivityTest
创建和加载布局
Android 程序的设计讲究逻辑和视图分离,最好每一个活动都能对应一个布局,布局就是用来显示界面内容的。
布局文件放在 src/res/layou 目录下——>activity_main.xml
根元素默认为 LinearLayout
ADT 为我们提供的可视化布局编辑器,你可以在屏幕的中央区域预览当前的布局。
在窗口的最下方有两个切换卡,左边是 Design,右边是 text。Design 是当前的可视化布局编辑器,在这里你不仅可以预览当前的布局,还可以通过拖拽的
方式编辑布局。而 text 则是通过 XML 文件的方式来编辑布局,现在点击一下text切换卡,可以看到如下代码:
1 <?xml version="1.0" encoding="utf-8"?> 2 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 tools:context=".MainActivity"> 8 9 <TextView 10 android:id="@+id/textView" 11 android:layout_width="125dp" 12 android:layout_height="40dp" 13 android:layout_marginTop="290dp" 14 android:layout_marginBottom="109dp" 15 android:text="欢迎来到我的第一个程序" 16 app:layout_constraintBottom_toTopOf="@+id/button2" 17 app:layout_constraintHorizontal_bias="0.269" 18 app:layout_constraintLeft_toLeftOf="parent" 19 app:layout_constraintRight_toRightOf="parent" 20 app:layout_constraintTop_toTopOf="parent" 21 app:layout_constraintVertical_bias="0.482" /> 22 23 <Button 24 android:id="@+id/button2" 25 android:layout_width="wrap_content" 26 android:layout_height="wrap_content" 27 android:layout_marginStart="93dp" 28 android:layout_marginLeft="93dp" 29 android:layout_marginEnd="94dp" 30 android:layout_marginRight="94dp" 31 android:layout_marginBottom="154dp" 32 android:text="开始" 33 app:layout_constraintBottom_toBottomOf="parent" 34 app:layout_constraintEnd_toEndOf="@+id/textView" 35 app:layout_constraintHorizontal_bias="0.0" 36 app:layout_constraintStart_toStartOf="parent" 37 app:layout_constraintTop_toBottomOf="@+id/textView" /> 38 39 </androidx.constraintlayout.widget.ConstraintLayout>
里面添加了一个 Button 元素,并在 Button 元素的内部增加了几个属性。
android:id 是给当前的元素定义一个唯一标识符,之后可以在代码中对这个元素进行操作。
如果需要在 XML 中引用一个 id,就使用@id/id_name 这种语法,而如果需要在 XML 中定义一个 id,则要使用@+id/id_name 这种语法
android:id |
是给当前的元素定义一个唯一标识符,之后可以在代码中对这个元素进行操作
|
android:layout_width
|
指定了当前元素的宽度
使用 match_parent 表示让当前元素和父元素一样宽
使用 wrap_content,表示当前元素的宽度只要能刚好包含里面的内容
|
android:layout_height
|
指定了当前元素的高度
使用 match_parent 表示让当前元素和父元素一样高
使用 wrap_content,表示当前元素的高度只要能刚好包含里面的内容
|
android:text
|
指定了元素中显示的文字内容
|
在活动中加载这个布局
重新回到 ActivityTest中,在 onCreate()方法中加入如下代码:
public class FirstActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
这里调用了 setContentView()方法来给当前的活动加载一个布局,而在setContentView()方法中,我们一般都会传入一个布局文件的 id。
只需要调用 R.layout.activity_main就可以得到 activity_main.xml布局的 id,然后将这个值传入 setContentView()方法即可.
3、在 AndroidManifest 文件中注册
所有的活动都要在 AndroidManifest.xml 中进行注册才能生效,现在来了解一下代码中各个字段的含义
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.myapplication"> 4 5 <application 6 android:allowBackup="true" 7 android:icon="@mipmap/ic_launcher" 8 android:label="@string/app_name" 9 android:roundIcon="@mipmap/ic_launcher_round" 10 android:supportsRtl="true" 11 android:theme="@style/AppTheme"> 12 <activity android:name=".MainActivity"> 13 <intent-filter> 14 <action android:name="android.intent.action.MAIN" /> 15 16 <category android:name="android.intent.category.LAUNCHER" /> 17 </intent-filter> 18 </activity> 19 </application> 20 21 </manifest>
活动的注册声明要放在<application>标签内,这里是通过<activity>标签来对活动进行注册的。
android:name
|
来指定具体注册哪一个活动
|
android:label
|
指定活动中标题栏的内容,标题栏是显示在活动最顶部的.给主活动指定的 label 不仅会成为标题栏中的内容,还会成为启动器(Launcher)中应用程序显示的名称 |
如果你想让 FirstActivity 作为我们这个程序的主活动,即点击桌面应用程序图标时首先打开的就是这个活动
需要在<activity>标签的内部我们加入了<intent-filter>标签,并在这个标签里添加了<action android:name="android.intent.action.MAIN" />和<category android:name="android.intent.category.LAUNCHER" />这两句声明
隐藏标题栏
隐藏的方法非常简单,打开ActivityTest,在 onCreate()方法中添加如下代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
}
requestWindowFeature(Window.FEATURE_NO_TITLE)的意思就是不在活动中显示标题栏,注意这句代码一定要在 setContentView()之前执行,不然会报错。
这样我们的活动中就不会再显示标题栏了