安卓入门笔记01

安卓笔记

1 Activity

1.1简介

用户与程序的交互需要有界面,在Android系统中,用户与程序的界面交互是通过Activity完成的。Activity是Android应用程序的四大组件之一,它负责管理Android应用程序的界面。一个应用程序一般会包含若干个Activity,每一个Activity组件负责一个界面的展现。

1.2 三个文件的联系

AndroidManifest.xml、MainActivity.java、acivity_main.xml

在AndroidManifest.xml中注册MainActivity。MainActivity继承android.app.Activity或其子类,重写父类方法onCreate( ),在onCreate( )方法中使用setContentView(R.layout.activity_main)方法获得acivity_main.xml中写的布局。

1.3 Activity的生命周期

Activity的生命周期中分为三种状态,分别是运行状态、暂停状态和停止状态。

1、运行状态:当Activity在屏幕的最前端时,它是可见的、有焦点的。

2、暂停状态:在某些情况下,Activity对用户来说仍然是可见的,但它不再拥有焦点,即用户对它的操作是没有实际意义的。

3、停止状态:当Activity完全不可见时,它就处于停止状态,但仍然保留着当前状态和成员信息。然而这些对用户来说都是不可见的。

安卓入门笔记01_第1张图片

Activity从一种状态转变到另一种状态时会触发一些事件,执行一些回调方法来通知状态的变化,具体方法如下所示:

void onCreate(Bundle savedInstanceState):创建时执行

void onStart():可见时执行

void onRestart():回到前台,再次可见时执行

void onResume():获取焦点时执行

void onPause():失去焦点时执行

void onStop():用户不可见进入后台时执行

void onDestroy():销毁时执行

安卓入门笔记01_第2张图片

2 Intent(意图)

2.1 简介

用于界面跳转

在Android系统中,使用的是Intent进行数据传递。Intent中文翻译为“意图”,它是Android程序中各个组件进行信息传递的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。

Intent一般用于启动Activity、启动服务、发送广播等,承担了Android应用程序三大核心组件相互间的通信功能。

2.2 显式Intent

通过Intent启动Activity时,需要明确指定激活组件的名称。 如需要在第一个界面(FirstActivity类)启动第二个界面(SecondActivity类),代码如下:

Intent intent = new Intent(FirstActivity.this,SecondActivity.class);  //定义一个intent
startActivity(intent); //启动Intent

2.3 隐式Intent

通过构造方法初始化Intent时,不指定某一特定类名,而是传入字符串,通过字符串匹配符合的目标组件

Intent intent=new Intent("com.example.myintent");

想被匹配的目标组件需要在注册文件中使用标签


   <intent-filter>
        
        <category android:name="android.intent.category.DEFAULT"/>
    intent-filter>
activity>

注: 为默认category(类型),若不添加,跳转时app会闪退。

2.4 使用Intent在Activity间传递数据

直接将数据存到Inent:

源页面:

Intent loginIntent  =  new Intent(MainActivity.this,LoginSucceed.class);            
loginIntent.putExtra("username",userName);

startActivity(intent);

目标页面:

String username = getIntent().getStringExtra("username");

数据较多时,可通过Bundle对象存储数据:

Bundle bundle = new Bundle();
bundle.putString("name", "Linda");
bundle.putInt("age",  20);
Intent intent = new Intent(this,Activity02.class);
intent.putExtras(bundle);
startActivity(intent);

Bundle bundle = getIntent().getExtras();
String stuName = bundle.getString("name");
int stuAge = bundle.getString("age");

(未完待续)

你可能感兴趣的:(安卓入门笔记01)