前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android从零单排系列四十八】《Android中自定义activity的实现方法》

【Android从零单排系列四十八】《Android中自定义activity的实现方法》

作者头像
再见孙悟空_
发布2023-07-17 20:40:07
3070
发布2023-07-17 20:40:07
举报

前言

小伙伴们,在前面的文章中,我们谈到了Android开发中的自定义view的基本概念及方法等,本文我们实际举例自定义一个activity。

一  activity介绍

Activity(活动)是Android应用程序中的核心组件之一,它代表了应用程序界面的一个单独屏幕或用户交互界面。每个Activity都具有自己的布局和功能,并且可以通过与其他Activity进行交互来构建复杂的应用程序。

二  activity的缺点

  1. 内存消耗:每个Activity都需要分配内存来维护其状态和UI层级结构。在应用程序中使用大量的Activity可能会导致内存消耗较高,可能会影响应用程序的性能和响应速度。
  2. 生命周期管理复杂:Activity具有多个生命周期方法(如onCreate()、onStart()、onResume()等),需要开发者正确管理这些方法的调用和处理应用程序状态转换。如果管理不当,可能会导致内存泄漏或错误的用户体验。
  3. 跨界面通信困难:当需要在不同的Activity之间进行数据传递或通信时,需要使用Intent、Bundle或其他机制来实现。这种跨界面通信的设计复杂性可能增加代码的复杂性和维护成本。
  4. UI切换延迟:当用户从一个Activity切换到另一个Activity时,可能会出现短暂的延迟。这是因为系统需要销毁前一个Activity并创建新的Activity实例,以及执行布局和渲染操作。
  5. 设备配置变化处理:当设备配置发生变化(如旋转屏幕、改变语言环境等)时,Activity默认会被销毁并重新创建。这可能导致应用程序的数据丢失或重置,需要开发者实现特定的处理逻辑来保存和恢复数据。
  6. 单一任务限制:每个Activity通常对应一个界面和一个任务。这意味着在同一时间只能显示一个Activity,而无法同时显示多个Activity的部分内容。在某些情况下,这可能限制了用户体验和交互的灵活性。

三  自定义activity的步骤

  1. 创建一个新的Java类:在Android项目中,创建一个新的Java类来定义您的自定义Activity。这个类应该继承自android.app.Activity类或其子类。
  2. 定义Activity布局:创建一个XML布局文件来定义Activity的界面布局。您可以使用各种UI元素(如TextView、Button等)和布局容器(如LinearLayout、RelativeLayout等)来构建界面。
  3. 关联布局和Activity:在Activity的onCreate()方法中,通过调用setContentView()方法将XML布局文件与Activity关联起来。这样,系统将根据布局定义呈现用户界面。
  4. 实现生命周期方法:在自定义Activity类中,根据需要实现生命周期方法以管理Activity的状态转换和用户交互。常见的生命周期方法包括onCreate()onStart()onResume()onPause()onStop()onDestroy()等。
  5. 处理用户交互:通过重写适当的方法(例如onClickListener()等)来处理用户对界面元素的交互操作,并执行相应的逻辑响应。
  6. 启动Activity:您可以使用Intent在其他Activity或组件中启动自定义Activity。通过指定目标Activity的class和必要的附加数据,然后通过调用startActivity()或相关的方法来启动Activity。
  7. 添加其他功能:根据需要,您可以在自定义Activity中添加其他功能,如数据处理、网络请求、数据库访问等。这些功能可根据您的应用需求和业务逻辑进行定制。
  8. 声明Activity:在AndroidManifest.xml文件中声明自定义Activity,以便系统能够识别和管理它。确保使用<activity>元素来指定Activity类的名称和其他属性。

四 自定义activity的demo

以下是一个简单的自定义Activity案例,展示了如何创建一个包含按钮点击事件处理和界面跳转的自定义Activity。

创建一个新的Java类:

代码语言:javascript
复制
public class CustomActivity extends AppCompatActivity {
    // 在这里添加您的代码
}

定义Activity布局: 在res/layout文件夹下创建一个名为activity_custom.xml的XML布局文件,并添加以下内容:

代码语言:javascript
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">

    <Button
        android:id="@+id/btn_start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点击开始"
        android:onClick="startButtonClick" />

</LinearLayout>

关联布局和Activity: 在CustomActivity类的onCreate()方法中,通过调用setContentView()方法将XML布局文件与Activity关联起来:

代码语言:javascript
复制
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_custom);
}

实现按钮点击事件处理: 在CustomActivity类中添加一个名为startButtonClick()的方法,用于处理按钮点击事件。例如,在按钮点击时启动另一个Activity:

代码语言:javascript
复制
public void startButtonClick(View view) {
    Intent intent = new Intent(this, AnotherActivity.class);
    startActivity(intent);
}

添加其他功能: 根据需要,可以在CustomActivity类中添加其他功能,例如处理数据、网络请求等。

声明Activity: 在AndroidManifest.xml文件的<application>标签内,添加以下代码来声明CustomActivity:

代码语言:javascript
复制
<activity android:name=".CustomActivity" />
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一  activity介绍
  • 二  activity的缺点
  • 三  自定义activity的步骤
  • 四 自定义activity的demo
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档