Android编程四大组件之Activity用法实例分析

yizhihongxing

Android编程四大组件之Activity用法实例分析

在Android编程中,Activity是四大组件之一,即应用程序运行时的一个界面。本篇文章将介绍Activity的用法,并通过实例进行展示。

一、Activity的生命周期

在编写Android程序时,需要理解Activity的生命周期,根据不同的生命周期方法实现对应的逻辑。

具体的Activity生命周期包含以下回调方法:

  • onCreate(): Activity被创建时调用,通常在这个方法中加载布局资源。
  • onStart(): Activity正在变得可见时调用。
  • onResume(): Activity正在前台运行时调用,用户可以与Activity交互。
  • onPause(): Activity失去前台焦点时调用,但仍在屏幕上可见。在用户离开当前Activity触发时调用。
  • onStop(): Activity变得不可见时调用。
  • onDestroy(): Activity被销毁时调用。

理解Activity的生命周期对于编写高质量的Android程序至关重要,能够帮助程序更好地管理资源、避免内存泄漏等问题。

二、创建新的Activity

在Android中,创建新的Activity需要在AndroidManifest.xml中注册,注册后方可通过Intent启动。

下面是一个创建新的Activity的示例代码:

public class NewActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new);

        TextView textView = findViewById(R.id.text_view);
        String message = getIntent().getStringExtra("message");
        textView.setText(message);
    }
}

在示例中,创建了一个名为NewActivity的Activity,并在onCreate()方法中加载了布局文件activity_new.xml,并获取了Intent中的"message"参数并显示在TextView中。

在Activity A中启动NewActivity的示例代码:

Intent intent = new Intent(ActivityA.this, NewActivity.class);
intent.putExtra("message", "Hello, New Activity!");
startActivity(intent);

上述代码将会启动NewActivity,并将"Hello, New Activity!"字符串传递给它。

三、Activity的通信

在Android编程中,Activity之间通信需要使用Intent实现。可以通过在Intent中添加数据(如Intent.putExtra()方法)或者设置回调来实现Activity之间的数据共享和通信。

下面是一个Activity之间通信的示例代码:

在Activity A中:

Intent intent = new Intent(ActivityA.this, ActivityB.class);
intent.putExtra("message", "Hello, Activity B!");
startActivityForResult(intent, 100);

在Activity B中:

// 处理传递过来的数据
String message = getIntent().getStringExtra("message");
TextView textView = findViewById(R.id.text_view);
textView.setText(message);

// 点击按钮返回结果给Activity A
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent();
        intent.putExtra("result", "Hello, Activity A!");
        setResult(RESULT_OK, intent);
        finish();
    }
});

在Activity A中,启动Activity B并传递消息,同时通过startActivityForResult()方法启动Activity B。在Activity B中,将接收到的消息显示在TextView中,并返回结果给Activity A。

在Activity A中重写onActivityResult()方法处理Activity B返回的结果:

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 100 && resultCode == RESULT_OK) {
        String result = data.getStringExtra("result");
        TextView textView = findViewById(R.id.text_view);
        textView.setText(result);
    }
}

上述代码将Activity B中返回的结果显示在Activity A中的TextView中。

通过上述示例代码,可以学习到Activity的用法,并掌握Activity之间的通信方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android编程四大组件之Activity用法实例分析 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 最简单的gitextensions教程(持续更新中)

    以下是详细讲解“最简单的GitExtensions教程”的完整攻略,过程中至少包含两条示例说明的标准Markdown格式文本: 最简单的GitExtensions教程 GitExtensions是一款开源的Git图形化界面工具,可以方便地管理Git仓库。本文将介绍最简单的GitExtensions教程,包括安装、配置和使用。 安装GitExtensions …

    other 2023年5月10日
    00
  • python基础:面向对象详解

    Python基础:面向对象详解 1. 面向对象编程思想 面向对象编程(Object-Oriented Programming, OOP)是一种编程思想,它以“类”和“对象”为基本组织单位,将数据和方法封装在“类”中,通过“对象”来调用和使用“类”中的方法。 面向对象编程具有以下优点: 封装性:把数据和方法封装在“类”中,外部无法直接访问和修改,保证了数据的安…

    other 2023年6月26日
    00
  • js控制只允许输入数字

    以下是关于如何使用JavaScript控制只允许输入数字的详细攻略: 步骤一:获取输入框元素 首先,需要获取要控制的输入框元素。可以使用 document() 方法或 document.querySelector() 方法获取元素。例如,要获取 id 为“inputNumber”的框元素,可以使用以下代码: constNumber = document.ge…

    other 2023年5月7日
    00
  • C++类中的六大默认成员函数详解

    当我们定义一个C++类的时候,编译器会默认为我们生成六个成员函数,分别是默认构造函数、析构函数、拷贝构造函数、拷贝赋值操作符、移动构造函数和移动赋值操作符。这些成员函数可以帮助我们管理内存和类对象的创建、销毁、拷贝和赋值等操作,同时也会影响到对象的生命周期和程序的效率。因此,我们需要深入了解这六个函数的作用和实现机制,才能写出高效、健壮的代码。 默认构造函数…

    other 2023年6月26日
    00
  • MySQL数据库配置信息查看与修改方法详解

    MySQL是一种常用的关系型数据库管理系统,管理员或者开发人员经常需要查看和修改MySQL数据库的配置信息。本文将详细讲解MySQL数据库配置信息的查看和修改方法,旨在帮助读者更好地管理和操作MySQL数据库。 查看MySQL数据库配置信息 要查看MySQL数据库的配置信息,可以通过以下步骤进行: 登录MySQL数据库 打开终端或命令提示符,输入以下命令登录…

    other 2023年6月25日
    00
  • 批处理命令教学之复合语句连接符(&、&&和||)

    批处理命令教学之复合语句连接符(&、&&和||) 在命令行执行批处理操作时,我们经常需要同时执行多个命令,或者根据之前的命令结果来决定是否执行后续的命令,这时就需要用到复合语句连接符。下面分别介绍&、&&和||三种复合语句连接符的使用方法。 &(连接符) &连接符可以同时执行两个及以上的命令,用…

    other 2023年6月26日
    00
  • python如何查询mysql

    以下是Python如何查询MySQL的完整攻略,包括MySQL连接、查询、结果处理等内容,过程中包含两个示例说明。 1. MySQL连接 在Python中,我们可以使用mysql-connector-python模块来连接MySQL数据库。以下是一个连接MySQL数据库的示例: import mysql.connector # 连接MySQL数据库 mydb…

    other 2023年5月10日
    00
  • win7电脑死机的问题及解决方法

    Win7电脑死机的问题及解决方法 问题描述 Win7电脑死机是一个常见问题,通常表现为电脑屏幕冻结、鼠标键盘无法操作、声音卡住等症状。这种情况经常给用户带来很多困扰,往往需要通过一些方法来解决。 解决方法 方法1:检查硬件设备故障 Win7电脑死机的原因往往是由于硬件设备故障所导致。如果出现死机的情况,可以先检查硬件设备是否有问题。检查时可以从以下几个方面入…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部