Activity 是承载用户界面的组建,负责与用户的交互。Activity 就好似剧院的舞台,承载着各种节目,以及跟观众(用户)互动的功能。
示例代码
创建一个空项目 ActivitySample
选择 No Activity
,创建一个不包含Activity
的空项目;
点击Next
进行配置,项目名叫 ActivitySample
,包名com.guagua.activitysample
.
新建 MyActivity1
右击包com.guagua.activitysample
新建 Activity
,命名为 MyActivity1
:
创建布局文件 activity_my1.xml
布局包含了用户界面,使得 Android 项目的逻辑与视图分离。
右击文件夹 layout
创建资源文件 activity_my1.xml
编辑activity_my1.xml
文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="30dp">
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="close button"
android:textAllCaps="false" />
</LinearLayout>
这里添加了一个 Button
.
加载布局文件
Java 代码 MyActivity1
:
public class MyActivity1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my1);
}
}
Kotlin 代码MyActivity1
:
class MyActivity1 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_my1)
}
}
通过 setContentView()
函数为当前的 Activity
加载布局,activity_my1.xml
布局文件的 id
作为该函数的参数。
配置 AndroidManifest.xml
清单文件,注册 MyActivity1
Activity
只有在 AndroidManifest.xml
中注册才能生效.
<activity
android:name=".MyActivity1"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<action android:name="android.intent.action.MAIN" />
的作用是指定该Activity
为项目的主Activity
;
<category android:name="android.intent.category.LAUNCHER" />
的作用是设置 用户点击桌面应用图标的时候跳转进入该Activity
。
运行效果
关闭当前Activity
Java 代码 MyActivity1
:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my1);
Button button = findViewById(R.id.btn1);
button.setOnClickListener(view -> {
Toast.makeText(this, "close activity", Toast.LENGTH_SHORT).show();
finish();
});
}
Kotlin 代码 MyActivity1
:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_my1)
val button: Button = findViewById(R.id.btn1)
button.setOnClickListener{
Toast.makeText(this, "close activity", Toast.LENGTH_SHORT).show()
finish()
}
}
点击 Button
,弹出 Toast
提示,然后调用 finish()
函数关闭当前页面。
项目代码(Java)地址:https://github.com/BethelDEV/shaguaAndroid/tree/main/javaSource/ActivitySample
项目代码(Kotlin)地址:https://github.com/BethelDEV/shaguaAndroid/tree/main/kotlinSource/ActivitySample