布局文件添加ListView空降
准备数据源:适配器不同;数组,xml, 对象集合数据库
创建适配器
加载到 ListView组件
事件:点击滚动事件
扩展Atapter使用:
1.编写数据实体类
2.继承父类:重写构造方法、getView()
3.构建数据源
4.构建自定义适配器
5.加载适配器
6.事件
Activity简介
●Activity是Android应用程序的四大组件之一,它负责管理Android应用口程序的用户界面。一个应用程序一般会包含若干个Activity,每一个Activity组件负责一个用户界面的展现。
Actvity的定义
●Activity, 直译为活动,它是Android定义的四大应用组件之一也是最重要用得最多的
●Activity用来提供一个能让用户操作并与之交互的界面
●一个应用有多个界面,也就是包含多个Activity
●打电话,发短信,拍照,发邮件等功能都是通过Activity来做的
Activity简介
●Activity是 通过调用setContentView(方法来显示指定组件的。该方法既可以接收View对象为参数,也可以接收布局文件对应的资源id为参数。
●Activity就像一个界面管理员,用户在界面上的操作是通过Activity来管理的,下面列举几个Activity的常用事件。
●onKeyDown(int keyCode,KeyEvent event):对应按键按下事件
●onKeyUp(int keyCode,KeyEvent event):对应按键松开事件
●onTouchEvent(MotionEvent event):对应点击屏幕事件
Activity的创建
在Android应用中, 可以创建一个或多个Activity,创建步骤如下所示:
1)定义一个类继承自android.app.Activity或者其子类;
2)在res/layout 目录中创建一个xml文件,用于创建Activity的布局;
3)在AndroidManifest.xml文件中注册Activity;
4)重写Activity的onCreate()方法,并在该方法中使用setContentView()加载指定的布局文件;
Activity的生命周期
●生命周期就是一个对象从创建到销毁的过程,每一个对象都有自己的生命周期。同样,Activity也具有 相应的生命周期,Activity的生 命周期中分为三种状态。
●运行状态: 当Activity在 屏幕的最前端时,它是可见的、有焦点的。
●暂停状态: Activity对 用户来说仍然是可见的,但它不再拥有焦点。
●停止状态:当Activity完全 不可见时,它就处于停止状态,但仍然保留着当前状态和成员信息。然而这些对用户来说都是不可见的。
●Activit从一种状态转变到另-种状态时会触发一些事件,执行一些回调方法来通知状态的变化,下面通过图例来展示。


显式意图和隐式意图
●显式意图
●即在通过Intent启动Activity时, 需明确指定激活组件的名称。如果需要在本应用中启动其他的Activity时,可以使用显式意图来启动Activity。
Intent Intent = new Intent(this, Actlvity02.class);startActivity(intent);
●显式意图还 可以根据目标组件的包名、全路径名来指定开启组
intent.setClassName(“n.itcast.xx”,".tcax.x.xxx);
startActivity(intent);
Intent介绍
●Intent中文翻译 为“意图”,它是Android程序中各个组件进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。
●Intent一般用于启动Activity、启动服务、发送广播等,承担了Android应用程序三大核心组件相互间的通信功能。
●Intent是一种运行时绑定 (runtime binding)机制,它能在程序运行的过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应。
对于向这三种组件发送intent有不同的机制:
●使用Context.startActivity() 或Activity.startActivityForResult),传入一个intent来启动一 个activity。 使用Activity.setResult0,传入一个intent来从activity中返回结果。
●将intent对象传给Context.startService()来启动一个service或者传消息给一个运行的service。 将intent对象传给Context.bindService()来绑定一个service.
●将intent对象传给Context.sendBroadcast), Context.sendOrderedBroadcast), 或者Context.sendtickyBroadcast()等广播方法,则它们被传给broadcast receiver。
Intent的相关属性:
●component(组件): 目的组件
●Component属性明确指定Intent的目标组件的类名称。(属于直接Intent)
●如果component这个属性有指定的话,将直接使用它指定的组件。指定了这个属性以后,Intent的其它所有属性都是可选的。
//创建一个意图对象
Intent intent = new Intent();
//创建组件,通过组件来影响
ComponentName component = new ComponentName (MainActivity,this,SecondActivity.class);
intent ,setComponent(component);
startActivity(intent);
●actlon (动作) :用来表现意图的行动在Intent中,Action就是描述做、 写等动作的,当你招明了一个Action,执行者就会依照这个动作的报示,接受相关输入,表现对应行为,产生符合的输出。在Intent类中, 定义了一批量的动作,比如ACION. VIEW, ACTION. PICK等,基本通路 了常用动作。加的动作越多,越精确。

●category (类别) :用来表现动作的类别一个包含Intent额外信息的字符串,表示哪种类型的组件来处理这个Intent。任何数量的Category 描述都可以添加到Intent中,但是很多intent不需要category。

●data (数据) :表示与动作要操纵的数据
●type (数据类型) :对于data范例的描写一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导。
●extras (扩展信息) :扩展信息:Intent可以携带的额外key-value数据,你可以通过调用putExtra()方法设置数据,每一个key对应一个value数据。你也可以通过创建Bundle对象来存储所有数据,然后通过调用putExtras()方法来设置数据。

●Flags (标志位) :期望这个意图的运行模式

数据传递方式
●Intent不仅可以用来开启Activity,也可以在Activity之 间传递数据。在数据传递时,可以使用putExtra()方法将数据存储在Intent中。
页面数据信息传递
1.直接发送数据
//发送端
String data = "Hello Activity02"
Intent intent = new Intent(this,Activity02.class);
//存放数据key-value
intent.putExtra("extra_ data",data);
startActivity(intent);
//将数据从Activity02中取出
Intent intent = getIntent();
//key
String data = = intent.getStringExtra("extra data");
2.Bundle
Bundle bund7e = new Bund1e() ;
bundle .putstringC"name", "Linda");
Intent intent = new Intent(this ,Activity02.class);
intent . putExtra(bund]e) ;
startactivi ty(intent);
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
string stuName = bundle . getstr ing("name");
intent用法
●调用拨号程序
//调用拨打电话,给10010拨打电话
uri uri = uri.parse("te1:10010") ;[
Intent intent = new Intent (Intent.ACTION_ DIAL, uri);
startActivity(intent) ;
//直接拨打电话,需要加上权限<uses -permission id=" android.permission.CALL PHONE" />
uri cal1uri = Uri. parse("te1:10010");
Intent intent = new Intent (Intent . ACTION_ CALL, calluri);
●发送知信或彩信
//给10010发送内容为"He11o”的短信
uri uri = Uri.parse("smsto:10010");
Intent intent = new Intent (Intent . ACTION_ _SENDTO, uri) ;
intent. putExtra("sms_ body", "He11o");
startactivity(intent);
//发送彩信(相当于发送带附件的短信)
Intent intent = new Intent (Intent .ACTION SEND);
intent . putExtra("sms_ body", "He11o");
Uri uri = uri.parse("content://media/externa1/images/media/23");
intent. putExtra(Intent. EXTRA _STREAM, uri);
intent . setType("image/png");
startactivity(intent);
●通过浏览器打开网页
//打开百度主页
Uri uri = uri. parse("https://www . bai du . com");
Intent intent = new Intent (Intent . ACTION_ VIEW, uri);
startActivity(intent) ;
●发送电子邮件
//给someone@domain. com发邮件
uri uri = uri. parse("mailto:someone@domain. com");
Intent intent = new Intent (Intent . ACTION_ SENDTO, uri) ;
startActivity(intent);
●安装程序
String fileName = Environment . getExternalstorageDirectoryO) + "/myApp. apk";
Intent intent = new Intent (Intent . ACTION _VIEW);
intent ,setDataAndType (Uri . fromFile(new File(fileName)),
'applicati on/vnd. android. package-archive");
startactivity(intent);
●卸载程序
uri uri = Uri.parse("package:" + packageName) ;
Intent intent = new Intent (Intent . ACTION DELETE,uri);
startActivi ty(intent);
Intent 启动Activity的方法有:
●startActivity. (Intent intent)
●startActivityForResult (Intent intent,int code)
Android下的任务栈
●Android系统中的任务栈,类似于一个容器,用于管理所有的Activity实例。在存放Activity时,满足“先进后出(First-In/Last-Out)”的原则。

Activity的四种启动模式
●Activity的 启动模式有四种,分别是standard、singleTop、 singleTask和singlelnstance。
●在AndroidManifest.xml中,可以通过标签的android:launchMode属性设置启动模式。
●standard标准模式
●standard是Activity默认的启动模式,在不指定Activity启动模式的情况下,所有Activity使用的都是standard模式。
●在standard模式下,每当启动一个新的Activity,它就会进入任务栈,并处于栈顶的位置,对于使用standard模式的Activity,每次启动都会创建一个新的实例。

●singleTop模式
●singleTop启动模式 与standard类似,不同的是,当启动的Activity已经位于栈顶时,则直接使用它,不再创建新的实例。

●singleTask模式
当Activity的启动模式为singleTask时,每次启动该Activity时,系统首先会检查栈中是否存在该Activity的实例,如果发现已经存在则直接使用该实例,并将当前Activity之上的所有Activity出栈,如果没有发现则创建一个新的实例。

●singleInstance模式
●singleInstance模 式加载Activity时,只会创建一个Activity实例, 并且会使用一个全新的任务栈来装载该Activity实例。

本文详细介绍了在Android开发中如何在Activity中使用ListView,包括添加ListView、创建适配器、加载数据、处理点击事件,以及Activity的生命周期、意图Intent的使用和数据传递方式。重点讲解了适配器的扩展使用和Activity的启动模式,帮助开发者更好地理解和运用这两个关键概念。

7932

被折叠的 条评论
为什么被折叠?



