Activity,Adapter和List的理解

版权声明:所有解释权归@A_slower_Erving https://blog.csdn.net/yeyuwei1027/article/details/79879713

在学Android移动开发,参考多方资料后,就Activity,Adapter和List谈谈我的理解

----------------------------------------------------------------------------------------


Activity 

其Inherited relation如下:

java.lang.Object

   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.view.ContextThemeWrapper
         ↳ android.app.Activity

        实现了 LayoutInflater.Factory2Window.CallbackKeyEvent.Callback,View.OnCreateContextMenuListenerComponentCallbacks2等Interface。有两个方法是所有Activity的之类都会重载实现的:onCreate(Bundle)  和 onPause()   

        它是一个应用组件,围绕用户可执行的特定操作设计,并且能够启动其他Activity。用户可与其提供的屏幕进行交互,进行各种操作,每个Activity会获得一个用于绘制其用户界面的窗口。

           各个Activity可以相互调用(甚至可以调用同一设备另一应用程序的Activity),当一个Activity启动另一个Activity时,新Activity会被推送到返回栈的顶端,以获得焦点并处于Runing状态,但是当前应用只有一个Activity在执行,上一个会被放入返回栈中保留(停止)。当用户按返回时,当前Activity从栈顶弹出并被销毁,而前一个Activity恢复运行。若当前Activity被调至后台时,onSaveInstanceState(Bundle)应被调用来保存当前任何动态实例。

        在一定程度上可以说,Android应用就是一个个彼此松散联系的Activity组成,Activity的Lifecycle具有四个States:Launched,Running,Paused,Destroyed(Killed)。    

          


(下图摘自developer.Android.com)


故Activity 类定义了以下Methods

方法  
onCreate()

在Activity第一次创建时调用,完成活动初始化,如Create View,加载布局,将数据绑定到列表等;

此方法还提供了一个包含Activity以前冻结状态的包;

onStart()

在应用程序为用户可见时调用;

若Activity进入前台时,与onResume()配y合使用,当其进入后台时,与onStop()配合使用;

onResume() 在应用程序与用户开始交互的时候调用(此时Activity被置于栈顶);
onPause()

当上一个活动将要开始被恢复时调用;

通常用来提交用户未保存的更改永久性数据(至Storage),停止动画等消耗CPU的事件;

此Method应该快速执行,因为在它返回值之前,下一Activity不能开始;    

onStop() 当Activity对用户不可见时调用(当一个新的Activity开始;一个存在的Activity被调用;当前Activity被Destroy);
onDestroy() Activity被系统Destroy之前的最后调用,即当Activity正在完成或为节省内存被临时Destroy时调用,可用isFinishing()来判断当前State
onRestart() Activity被停止后且在重新打开前调用;
   

        


Adapter

        叫做适配器,是用来帮助填充数据的中间桥梁,即把各种数据以合适的形式显示在View上供用户查看,其常需要结合ListView,GridView等控价使用。

Adapter有将近十种,它们的继承结构图如下:(摘自runoob.com)


而常用的有四个:BaseAdapter,ArrayAdapter,SimpleAdapter 和 SimpleCursorAdapter


BaseAdapter:基础数据适配器,继承自接口类Adapter,是基础类型,很常用于重写,主要用途是将数据传送到例如ListView等UI控件中显示

ArrayAdapter:数组适配器,其支持泛型,列表的每一行只能显示一行文本

SimpleAdapter:简单适配器,将静态数据映射到一个布局文件(XML)中定义的视图,虽是简单但功能强大,利于写较复杂的列表布局(例如同一行同时显示文本,头像等信息)

SimpleCursorAdapter:将游标中的数据映射到布局文件(XML)中的TextView控件或ImageView控件中。与SimpleAdapter类似,常用来绑定数据库里的数据。



此外还了解到有AdapterView(适配器视图):AdapterView通过Adapter来控制视图的显示,当使用适配器视图时,可以根据用户交互简单地构建相应布局。而适配器在视图与是数据自己扮演了一个桥梁的作用,它将数据中的每一个数据项转变为适配器视图中可以使用的每一个视图项。


(此类图摘自https://blog.csdn.net/ljheee/article/details/52302591)



List        

        List是一个继承自Collection的接口,一种有序可重复的数据集合,供用户进行各种精确操作(插入,删除,查找和获取)。 

        List接口有一个特殊iterator(迭代器),可以双向进行存取等操作,提供了一个方法可以从指定位置开始迭代。List还与Set不同,List允许重复的元素,当然,也可以通过抛出runtime exceptions来禁止重复元素(少用)。

       其间接子类有AbstractList,AbstractSequentialList,ArrayList,CopyOnWriteArrayList,LinkedList,Stack,Vector。



           

-----------------------------------------------------------------------------------------END-----------------------------------------------------------------------

                                                                                    水平有限,错误疏漏在所难免,望路过大神不吝批评指点。

                                                                                            

                                                                                                                A slower never walks backwards.

                                                                                                                            ----A_slower




猜你喜欢

转载自blog.csdn.net/yeyuwei1027/article/details/79879713