android讲义-activity
android中activity的作用

android中activity的作用
Android中的Activity是一种Android应用程序组件,它是应
用程序用户界面的基本单元之一,用于展示用户界面,并处理与用户交互的事件。
Activity可以执行各种任务,包括呈现一
个布局、启动另一个Activity、接收用户输入、显示对话框、
与数据库等数据存储进行交互等。
以下是Activity的主要作用:
1. 展示用户界面:Activity是用来呈现用户界面的,它可以包
括布局、按钮、文本框、图像和其他UI组件。
2. 处理用户输入:Activity可以监听用户的交互操作,比如点
击一个按钮或文本框输入等。
3. 启动其他Activity:应用程序通常涉及多个Activity,一个Activity可以启动其他Activity,以便用户可以浏览应用程序
的不同部分。
4. 保存和恢复状态:当设备配置更改或系统内存不足时,Activity可以保存其状态并在需要时进行恢复。
5. 数据交互: Activity可以与其他应用程序进行数据交互,例
如通过Intent与其他Activity进行通信,与数据库进行交互等。
Android知识点Activity篇

Android部分Activity篇1.Activity是什么?Activity实际上只是一个与用户交互的接口而已。
2.Activity生命周期2.1 Activity的4种状态 Active/Paused/Stopped/KilledActivie:当前Activity正处于运行状态,指的是当前Activity获取了焦点。
Paused:当前Activity正处于暂停状态,指的是当前Activity失去焦点,此时的Activity 并没有被销毁,内存里面的成员变量,状态信息等仍然存在,当然这个Activity也仍然可见,但是焦点却不在它身上,比如被一个对话框形式的Activity获取了焦点,或者被一个透明的Activity获取了焦点,这都能导致当前的Activity处于paused状态。
Stopped:与paused状态相似,stopped状态的Activity是完全不可见的,但是内存里面的成员变量,状态信息等仍然存在,但是也没有被销毁。
Killed:已经被销毁的Activity才处于killed状态,它的内存里面的成员变量,状态信息等都会被一并回收。
2.2 Activity的生命周期分析正常情况下的生命周期:Activity启动–>onCreate()–>onStart()–>onResume()点击home键回到桌面–>onPause()–>onStop()再次回到原Activity–>onRestart()–>onStart()–>onResume()退出当前Activity时–>onPause()–>onStop()–>onDestroy()详细生命周期如下:1.启动了一个Activity,通常是Intent来完成。
启动一个Activity首先要执行的回调函数是onCreate(),通常在代码中你需要在此函数中绑定布局,绑定控件,初始化数据等做一些初始化的工作。
安卓课程Activity内容day06

3.获取数据Intent intent = getIntent();
Uri data = intent.getData();
显式跳转
1.定义:通过字节码或者要跳转的Activity的全类名进行跳转
2.异常:
01-14 03:19:36.348: E/AndroidRuntime(3346): Caused by:
②获取数据
intent.getStringExtra(key)
Intent可以携带的ቤተ መጻሕፍቲ ባይዱ据种类
①八种基本数据类型和String以及他们的数组形式
②实现了Parcelable(序列化对象的接口,类似Serializable)接口的对象
③实现了Serializable接口的对象
1.standard
一个任务栈可以有多个FirstActivity的实例对象
2.singleTop
当一个任务栈栈顶已经是FirstActivity的时候,就无法重新启动创建一个FirstActivity,
但是依然可以创建其他种类的Activity
3.singleTask
2.通过代码,必须在setContentView()方法之前!!! //设置屏幕水平方向
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
四、Activity的启动模式
任务栈(回退栈):FILO===LIFO
Activity是四大组件之一,必须在AndroidManifest.xml中进行注册
如果清单文件中有多个入口Activity,谁在上面,就默认启动谁
android_Activity详解

Activity详解1.什么是Activity?Activity是一个应用程序组件,代表用来与用户进行交互的界面.比如,发邮件,拍照等的交互界面.一个应用程序通常由多个Activity松耦合的组成,典型的,当用户启动一个应用程序时见到的第一个交互界面(Activity)就叫做主Activity.当然,为了完成相应的动作,一个Activity可以启动另一个Activity;比如qq登陆界面,填写信息之后,发送一个信息去验证,通过之后就启动主界面Activity.每当启动一个新的Activity,前一个Activity将停止,但是系统将仍然保存这个对象在后台栈(back stack)里面。
当启动一个新的Activity,它将被放入back stack中,并且获得用户焦点。
Back stack遵循后进先出原则,所以当用户按手机上的back按钮时,当前的activity将会从back stack中移除,前一个Activity将被恢复。
(Back stack请参考Tasks and Back Stack文档)。
当然,Activity的创建,启动,恢复,暂停,停止,销毁都对应了一系列Activity的回调函数。
2.创建Activity。
创建一个Activity,需要继承Activity超类或继承自继承了Activity的子类。
在你实现的子类中,你需要实现由系统在Activity状态发生变化时调用的各个回调函数。
例如创建,暂停,停止等时会由系统调用对应的方法。
这里介绍两个很重要的方法:onCreate() : 这个方法是必须实现的。
当在创建一个Activity时候由系统调用。
在该方法里面,你应当初始化一些组件;最重要的是,你必须设置setContentView()方法来设置activity布局。
onPause() :当你离开该activity时将被调用,在这个方法里你可以保存一些信息到数据库或文件等。
一.实现用户界面。
Android学习之基础知识四-Activity活动1讲

Android学习之基础知识四-Activity活动1讲⼀、活动(Activity)的基本⽤法:1、⼿动创建活动FirstActivity(java源码): A、Android Studio在⼀个⼯作区间只允许打开⼀个项⽬,点击:File--->Close Project,关闭当前项⽬ B、然后重新创建⼀个Android项⽬:Start a new Android Studio project C、填写项⽬名称: D、选择:Add No Activity E、创建项⽬成功后,在:com.example.administrator.activitytest包中创建⼀个活动,右击包名--->New--->Activity---->Empty Activity Generate Layout File与Launcher Activity两个选项不要勾选 Generate Layout File:⾃动为FirstActivity创建⼀个对应的布局⽂件 Launcher Activity:⾃动将FirstActivity设置为当前项⽬的主活动 F、结果:2、创建和加载布局: A、右击app/src/main/res⽬录--->new--->Directory B、创建layout⽬录后,右击layout---->new---->Layout resource file File name:布局⽂件名 Root element:根元素 C、结果:3、编辑布局⽂件: 添加⼀个按钮: 按钮属性解析: android:id给该按钮定义⼀个唯⼀的标识符,类似于⼈的⾝份证号,独⼀⽆⼆。
在XML中,定义⼀个id是“@+id/id_name”,引⽤⼀个id 是“@id/id_name”. android:layout_width定义当前元素的宽度,match_parent表⽰当前元素的宽度与⽗元素⼀样宽 android:layout_height 定义当前元素的⾼度,wrap_content表⽰当前元素的宽度只要刚好包含⾥⾯的内容就⾏。
Android基础-Activity

Activity之间如何传递数据
Activity之间通过Intent传递简单的数据
发送数据:
Intent intent = new Intent(this,SecondActivity.class);
每个应用都拥有一个main Activity
在manifest文件中声明 Main Activity是应用启动时第一个显示的界面
Activity栈
Android使用栈来管理各个Activity 当一个Activity在最前端时,它位于栈顶
当另外一个Activity启动时,原来的Activity被 压到栈里,而新的Activity位于栈顶
当一个Activity处于Paused或Stopped状态时, 系统可以调用finishi()或者直接杀掉它以释放 内存
Activity的生命周期
Activity的七个生命周期回调函数:
onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(), onRestart() 在onCreate()中设置全局状态或处理其他
在这期间,用户可以看到这个Activity的界面
当启动一个新的Activity,而当前的Activity不再 可见时,onStop被调用
在这个期间,应该持续维护需要被显示的资源
ex:你可以在onStart中启动一个广播来监听对 你显示有影响的事件,并在onStop中注销它
Android学习笔记(三)Activity及Intent

Android学习笔记(三)Activity及Intent⼀、废话 今天⼗分的忙,本来打算今天就不写了,可是想想既然决定要做某件事情了,那么就要坚持下去。
做不做是⼀个态度问题!⼆、正⽂1、Activity 在⼀个Android应⽤程序中,Activity是为⽤户操作⽽展⽰的可视化界⾯。
⽐如你要打电话,这个时候的拨号界⾯就是⼀个Activity,你要发短信给你的⼥朋友,这个短信窗⼝就是⼀个Activity。
Activity在创建之初只是⼀个没有任何内容的页⾯,如果要做出⽤户体验⾮常棒的应⽤程序,还需要在Activity中添加控件(如按钮,⽂字,图⽚)以显⽰和响应⽤户操作。
2、在Android中,多个Activity之间如何切换? 在Android 系统中,之所以⼀个Activiyt运⾏过程中可以运⾏另外的Activity,是因为Android在遇到这种情况后,会⾃动创建⼀个任务堆栈,并把这些关联的Activity压⼊堆栈中。
在这个任务堆栈栈顶的Activity就是当前⽤户⼀直操作的Activity,⽽当⼀个新的Activity启动时,这个Activity就必须位于栈顶,⽽当前的Activity就会被压⼊栈的下⼀个位置。
当系统发现内存不够⽤时,会默认清理⼀些长时间没有被使⽤的Activity存放栈。
打个⽐⽅,你在看微博,现在收到⼀条⼥朋友发来的微信,这个时候你打开微信,Android就会将微信的Activity压⼊栈并放在栈顶,使微信的Activity被激活,⽽把本来在栈顶的微博Activity压⼊栈中下⼀个位置。
这样⼀来,当你按Back键时,微信Activity就会弹出栈,新浪Activity位于栈顶于是被激活。
但是当你按下HOME键后,这些Activity都将转到后台运⾏,你使⽤Back是不能再次激活他们的,此时你必须点击应⽤程序才能再次激活它。
那么为什么微信Activity激活时,再按Back微博Activity能够再次激活?这就要从Activity的⽣命周期讲起了。
Activity详细讲解

Activity详细讲解Activity 是我们开发Android应⽤程序最重要的⼀个类。
这个类的内容⽐较多,我理解多少就写多少,希望你喜欢:)这篇⽂章会涉及到以下⼏个内容⼀ Activity的⽣命周期⼆ 让Activity变成⼀个窗⼝:Activity属性设定三 你后台的Activity被系统回收怎么办:onSaveInstanceState四 调⽤与被调⽤:我们的通信使者 - Intent⼀ Activity的⽣命周期和其他⼿机平台的应⽤程序⼀样,Android的应⽤程序的⽣命周期是被统⼀掌控 的,也就是说我们写的应⽤程序命运掌握在别⼈(系统)的⼿⾥,我们不能改变它,只能学习并适应它。
简单地说⼀下为什么是这样:我们⼿机在运⾏⼀个应⽤程序的时候,有可能打进来电话发进来短信,或者没有电了,这时候程序都会被中断,优先去服务电话的基本功能,另外系统也不允许你占⽤太多资源,⾄少要保证电话功能吧,所以资源不⾜的时候也就有可能被⼲掉。
⾔归正传,Activity的基本⽣命周期如下代码所⽰:Java代码1. publicclass MyActivity extends Activity{2. protectedvoid onCreate(BundlesavedInstanceState);3.4. protectedvoid onStart();5.6. protectedvoid onResume();7.8. protectedvoid onPause();9.10. protectedvoid onStop();11.12. protectedvoid onDestroy();13. }public class MyActivity extends Activity {protected void onCreate(Bundle savedInstanceState);protected void onStart();protected void onResume();protected void onPause();protected void onStop();protected void onDestroy();}你⾃⼰写的Activity会按需要 重载这些⽅法,onCreate是免不了的,在⼀个Activity正常启动的过程中,他们被调⽤的顺序是 onCreate -> onStart -> onResume, 在Activity被⼲掉的时候顺序是onPause -> onStop -> onDestroy ,这样就是⼀个完整的⽣命周期,但是有⼈问了 ,程序正运⾏着呢来电话了,这个程序咋办?中⽌了呗,如果中⽌的时候新出的⼀个Activity是全屏的那么:onPause->onStop ,恢复的时候onStart->onResume ,如果打断 这个应⽤程序的是⼀个Theme为Translucent 或者Dialog 的Activity那么只是onPause ,恢复 的时候onResume 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设置要用的图片
问题:图片资源如何导入项目?
移动平台软件设计
导入图片资源方法
先在res文件夹上右键 -> 新建 Folder,命名为 drawable
图片资源固定存放位置 名字不要更改
ห้องสมุดไป่ตู้
移动平台软件设计
接着在res/drawable文件夹上右键 -> Import -> 选择 General下的 File System
根据菜单id做分支
case R.id.menu_item1: setContentView(yout.activity_main); return true;
设置布局
case R.id.menu_item2:
setContentView(yout.testlayout); return true; default: return false; } }
移动平台软件设计
移动平台软件设计
4 Activity
4.1 理解Activity
4.2 Activity切换不同的界面 (示例)
4.3 设置Activity背景
4.4 Activity生命周期
4.5 Android程序调试
移动平台软件设计
4.1 理解Activity -- 回顾
R.java文件 系统自动生成的java文件 R.java是项目中所有资 源的索引文件,资源以 (资源id,值)形式存放在 对应的内部类中
值资源是单个映射过去
移动平台软件设计
MainActivity.java代码分析
程序存放的包 导入程序所需的包
Activity一般以 ***Activity 命名 且首字母大写
继承Activity 当一个Activity被创建时,就能从onCreate的 参数saveInsanceState中获得状态数据
布 局 根 元 素
@+id/imageView1:表示在R.id类中创建 一个id值为imageView1的索引变量
引用图片资源
【返回】
移动平台软件设计
步骤2:修改菜单文件
新菜单 默认的老菜单
移动平台软件设计
MainActivity.java菜单代码分析
Activity创建Option类型菜单事件
getApplicationContext() 或用:某个Activity.this
【返回】
移动平台软件设计
4.3 设置Activity背景 (布局背景)
1. 设置背景色
在string.xml中配置:
<drawable name="bgcolor">#000</drawable>
在layout文件中设置属性:
子类 覆盖 父类 方法
生命周期之一(可理解为程序入口)
调用父类的onCreate方法 访问在R.java中注册的 activity_main.xml布局资源文件
设置一个Activity的布局界面
菜单代码分析见4.2节
移动平台软件设计
什么是Activity
布局 图片
资源res文件夹
: id v e alu 的 注 册
移动平台软件设计
下一步,点击Browse,找到图片位置,并选中所需图片 文件,Finish。
选中图片
移动平台软件设计
图片资源导入完成后自动在R.java注册(索引)
文件夹变化 R.Java自动生成
自动生成图片 文件的索引
移动平台软件设计
最终生成的testlayout.xml代码
@+:表示要在R.java中新建一个索引
界面布局文件中描述组件的xml语法
格式1:单个组件简写
<组件名 属性1="属性值" 属性2="属性值"
…
属性n="属性值" />
不要掉了 结束符
格式2:组件中嵌入组件 <组件名 属性1="属性值" 属性2="属性值"
…
属性n="属性值" >
嵌入的其他组件
</组件名>
结束符
移动平台软件设计
注意
通常一个界面对应一个Activity
字体
基 于
每一个显示屏幕就是一个Activity。
R.java文件
Activity能为用户提供可视化界面。 程序通常由多个Activity组成。
其他Java android类、 其他 类 普通java类 类 Android
src文件夹
如有需要,界面 通过id加载资源
Activity1(界面1)
参数menu可获得当前Activity的菜单对象
R.java getMenuInflater()得到当前Activity的MenuInflater 对象,该对象提供inflate()方法用于设置菜单资源。
R.menu.main是res/menu/main.xml文件在R.java中的映射
移动平台软件设计
在Activity的onCreate()方法中添加代码:
this.getWindow().setBackgroundDrawableResource(R.drawable.bg320_480);
设置背景图片的方法
【返回】
移动平台软件设计
4.4 Activity生命周期
Activity生命周期指Activity从启动到销毁的过程。
菜单资源main.xml代码分析
菜单项 两个主要属性菜单id、菜单title
main.xml
@+:表示要在R.java中新建一个索引 @+id/action_settings:表示在R.id类中 创建一个id值为action_settings的索引值
菜单标题是引用@string/action_settings这个 字符串资源,该资源在res/values/string.xml 中定义,这里其实也可以直接赋值(见后)。
<item android:id="@+id/menu_item2" android:title="布局2" />
运行结果:
MainActivity的新菜单
【返回】
移动平台软件设计
为菜单项添加功能
在MainActivity.java中添加如下代码:
@Override
菜单项选中项事件
public boolean onOptionsItemSelected(MenuItem item) { Toast.makeText( MainActivity.this, "选中" + item.getTitle(), 用Toast显示信息 Toast.LENGTH_SHORT).show(); switch ( item.getItemId() ) {
移动平台软件设计
下一步,输入布局文件名:testlayout,布局的根元素选 择:RelativeLayout
移动平台软件设计
下一步,配置xml文档属性,可以不选择,直接Finish。
自动生成的 testlayout.xml文件
移动平台软件设计
将一个ImageView组件拖放到界面上,并设置属性。
内部类
资源目录 res文件夹下的文件会 被映射到R.java中 例如
布局资源、菜单资源 文件是整体映射过去
图片 资源 布局 资源 菜单资源 值资源
例如 在程序中引用资源时用:R.内部类.资源id 例如:setContentView(yout.activity_main); getResources().getString(R.string.hello_world) 在xml布局中则引用:@内部类/资源id android:text="@string/hello_world"
@:表示要引用一个资源
@string/hello_world:表示引用 R.string.hello_world 这个值资源, R.string 类中的值资源来源于 res/values/strings.xml 文件
strings.xml文件
这个就是:@string/hello_world
移动平台软件设计
移动平台软件设计
Activity栈:后进先出
新的
Activity 入栈 活动状态 Activity Activity Activity 暂停状态 或 停止状态 . . . . . . Activity Activity 栈
按了返回键或Activity被finish
出栈
Activity
非活动状态
被系统强制终止
移动平台软件设计
activity_main.xml布局代码分析
可视化设计界面
布局文件通常命名为: activity_***, 其中***对应某个Activity
各种UI组件
自动生成的 布局文件
TextView组件
移动平台软件设计
布局属性
布 局 根 元 素
TextView组件嵌在RelativeLayout组件中 TextView属性
Activity表现为四种状态:
活动状态Active:Activity在用户界面中处于最上层,完全能被 用户看到,能够与用户进行交互。 暂停状态Pause:Activity在界面上被部分遮挡,不再处于用户 界面的最上层,且不能够与用户进行交互。(如弹出选择框时) 停止状态Stop:Activity被其他Activity全部遮挡,界面完全不 能被用户看到。(如玩游戏时来电了) 非活动状态Dead:Activity没有启动或者被finish()。