Android学习之Activity初步

Activity作为Android的第一步接触的概念,在学习中将初步的认识总结下来,以便后续的回顾与反思。

1、在用Android Studio生成第一个helloworld应用程序运行在手机上时,发现继承自Activity的MainActivity生成的界面上,默认的Label是不可见的,即使在AndroidManifest文件中定义android:Label="This is FirstActivity"也无济于事。后来才发现应该是继承Activity的原因,将其改为extends AppCompatActivity即可。

2、注意XML文件中@+id/与@String这样的区别,+号表示要构建唯一的标识符,而没有+号则意味着是引用之意。

3、Intent:作为Activity中用来传递活动、信息的传递者,它有多个构造函数,并存在两种方式:显式Intent和隐式Intent:

显式Intent:

1  public void onClick(View view) { //点击按钮就会执行onClick方法
2                 Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
3                 startActivity(intent);

Intent的两个参数用来指示出发的Activity和将要启动的Activity,并且利用startActivity的方法,将intent传入该方法,就可以进行Activity之间的切换。

隐式Intent:

隐式Intent的主要部分并非在class文件中,而在于Androidmanifest的Activity注册中:

<activity android:name=".ThirdActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:scheme="http"/>
            </intent-filter>
        </activity>

注意到intent-filter中的两个参数:action和category(action只能有一个,而category则可以有多个),这些相当于ThirdActivity的一个内在特征,在代码中使用隐式intent时,就需要进行“匹配”,才会得到正确的运行方式:

public void onClick(View view) {
                Intent intent = new Intent("android.intent.action.VIEW");
                intent.addCategory("android.intent.category.DEFAULT");
                startActivity(intent);

Intent的这个构造方法将action作为参数,category若是default则可以不用写出,这样两者的特征得到“匹配”,就可以得到与显式intent相同的Activity切换效果。注意:若category采用自定义的方式在manifest文件中注册,那么在Intent方法中需要使用如下addCategory方法进行说明:

intent.addCategory("android.intent.category.MY_DEFAULT");

这样才能使得manifest文件与intent传递信息“匹配”成功,才能正确的启动目标Activity。

时间: 2024-12-16 20:44:22

Android学习之Activity初步的相关文章

【Android 初学】Activity初步

1.Activity启动流程 Android操作系统 -->  读取配置文件AndroidMainfest.xml(得知启用哪个Activity)-->  生成MainActivity对象(名字可自定义) --> 调取该Activity的onCreate()方法 --> 在该方法会读取布局文件,决定该Activity显示界面 2.Activity与布局文件的关系 所谓的布局文件就是指示Activity显示的内容 3.在Activity当中获取代表控件的对象 每一个控件在Activi

Android学习之Activity跳转与传值

Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据. 一.Activity跳转 方法一 Intent intent = new Intent(A.this, B.class); startActivity(intent) 方法二 Intent intent = new Intent(); intent.setClass(A.this, B.class); startActivity(intent); 实现从A跳转到B(A.B均继承自Activity) 二

Android学习笔记-Activity&Intent

界面activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="matc

android学习之activity

Activity 的生命周期 和 J2ME 的 MIDlet 一样,在 android 中,Activity 的生命周期交给系统统一管理.与 MIDlet 不同的是安装在 android 中的所有的 Activity 都是平等的. Activity 的状态及状态间的转换 在 android 中,Activity 拥有四种基本状态: Active/Runing一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态. Paused 当 Activ

Android学习笔记——Activity的启动和创建

http://www.cnblogs.com/bastard/archive/2012/04/07/2436262.html Android Activity学习笔记--Activity的启动和创建 最近学习Android相关知识,感觉仅仅了解Activity几个生命周期函数基本上没有任何意义的: 于是想深入了解一下Activity到底是怎么一回事怎么运行来的:里面的东东真是叫个庞大: 现在只能简单的了解其框架性的概念和流程: 一 Activity概念 Android的核心不是Applicati

Android学习杂记-Activity基础知识

本文摘录自Tekkaman博客. [Activity介绍] 一个Activity是一个应用程序组件,提供一个屏幕,方便和用户实现交互.每一个activity被给予一个窗口,在上面可以绘制用户接口.在一个Activity创建时,其实现的onCreate(Bundle savedInstanceState)方法将被系统回调,通常在这个方法里调用setContentView(View view)方法加载显示布局文件UI,并利用findViewById方法获取布局UI中的控件,对其修改数据或填充数据.

android学习四---Activity和Intent

1.android项目资源深入了解 在深入学习android之前,先好好玩玩手机上的应用,大部分程序都有一个图标,点开图标,程序启动,一定时间后,程序会跳转到第一个界面,比如手机QQ,点开图标,会跳出一幅图,接着就跳到QQ登陆的界面(如下图).这个界面里有输入框输入QQ号码,密码,有个登陆按钮,有记住密码选择框,还有一些图标和文本.如果你输入了密码和账号后,点击登陆,程序就会响应.发送到服务器端会检查账号,密码.账号密码一致的话就会就会跳到用户界面. 假设需要实现这样的一个界面,对应的andro

android学习笔记 activity生命周期&amp;任务栈&amp;activity启动模式

activity生命周期 完整生命周期 oncreate->onstart->onresume->onpause->onstop->ondestory 使用场景:应用程序退出自动保存数据 ondestory oncreate 可视生命周期 onstart->onresume->onpause->onstop 使用场景:应用程序最小化 暂停的操作 onstop onstart 前台生命周期 onresume->onpause 界面用户仍然可见,但是失去焦

Android学习之Activity传参

一.传参的三种方法 场景分两步: 1.从第一个Activity传递参数到第二个Activity,接受并显示. 2.第二个Activity文本框输入信息,并传到第一个Activity. 传参前需要先定义Intent Intent i=new Intent(MainActivity.this,TheAty.class);//参数一当前Activity,参数二跳转Activity 传参的集中方法 1.putExtra 类似是键值对,第二个参数可以传不同类型的值 a)赋值 i.putExtra("dat