Android中Activity组件实例介绍
Activity 概述
在 Android 应用中,提供了 4 大基本组件,分别是 Activity、Service、BroadcastReceiver 和 ContentProvider。而 Activity 是 Android 应用最常见的组件之一。Activity 的中文意思是活动。在 Android 中,Activity 代表手机或者平板电脑中的一屏,它提供了和用户交互的可视化界面。在一个 Activity 中,可以添加很多组件,这些组件负责具体的功能。
在一个 Android 应用中,可以有多个 Activity。这些 Activity 组成了 Activity 栈(Stack),当前活动的 Activity 位于栈顶,之前的 Activity 被压入下面,成为非活动 Activity,等待是否可能被恢复为活动状态。
启动 Activity 的两种情况
①、在一个 Android 应用中,只有一个 Activity 时,那么只需要在 AndroidManifest.xml 文件中对其进行备注,并且将其设置为程序的入口。这样,当运行时,将自动启动该 Activity。
②、在一个 Android 应用中,存在多个 Activity 时,需要应用 startActivity() 方法来启动需要的 Activity。
关闭 Activity
在 Android 中,如果想要关闭当前的 Activity,可以使用 Activity 类提供的 finish()方法。
举例说明:启动和关闭 Activity
核心代码如下
// MainActivity public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); TextView password = (TextView) findViewById(R.id.wang_mima); password.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //创建 Intent 对象 Intent intent = new Intent(MainActivity.this,PasswordActivity.class); //启动 PasswordActivity startActivity(intent); } }); } }
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:background="#CCCC99" android:stretchColumns="0,3"> <!-- 第一行 --> <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingTop="200dp" > <TextView /> <TextView android:text="账号:" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:textSize="15dp" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15dp" android:hint="邮箱或手机号" /> <TextView/> </TableRow> <!-- 第二行 --> <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingTop="2dp"> <TextView /> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="15dp" android:text="密码" android:gravity="center_horizontal" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="输入 6-16 位数字或字母" android:textSize="15dp" /> <TextView/> </TableRow> <!-- 第三行 --> <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content"> <TextView/> <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="注册" /> <Button android:layout_width="15dp" android:layout_height="wrap_content" android:text="登录" /> <TextView/> </TableRow> <!-- 第四行 --> <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingTop="15dp" > <TextView /> <TextView /> <TextView android:id="@+id/wang_mima" android:text="忘记密码?" android:textColor="#FF4500" android:gravity="right" /> </TableRow> </TableLayout>
所得 主界面
//创建新活动 PasswordActivity package com.example.example61; import androidx.appcompat.app.AppCompatActivity; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ImageButton; public class PasswordActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_password); //获得布局文件中的关闭按钮 ImageButton close = (ImageButton) findViewById(R.id.close); close.setOnClickListener(new View.OnClickListener(){ @Override //关闭当前 Activity public void onClick(View v) { finish(); } }); } }
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".PasswordActivity" android:background="#CCCC99"> <ImageButton android:id="@+id/close" android:layout_width="60dp" android:layout_height="40dp" android:layout_alignParentLeft="true" android:background="#0099CC" android:padding="5dp" android:scaleType="centerInside" android:src="@drawable/a" /> <TextView android:id="@+id/t1" android:layout_width="350dp" android:layout_height="40dp" android:layout_alignBottom="@+id/close" android:layout_alignParentRight="true" android:background="#0099CC" android:paddingHorizontal="120dp" android:text="找回密码" android:textSize="25dp" /> <TextView android:id="@+id/textview" android:layout_below="@+id/close" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="100dp" android:layout_marginLeft="20dp" android:textSize="25dp" android:text="邮箱或手机号" /> <EditText android:id="@+id/edittext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textview" android:layout_marginTop="20dp" android:layout_marginLeft="20dp" android:hint="请输入邮箱或手机号"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/edittext" android:layout_marginLeft="20dp" android:layout_marginTop="20dp" android:background="#0099C" android:text="提交" /> </RelativeLayout>
单击找回密码所得界面