欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

安卓的三个基本概念:Activity、Adapter 和 List

程序员文章站 2024-03-22 23:57:52
...

Activity

一、基本概念

    Activity是Android的四大组件(activityservicecontent providerbroadcast receiver)之一,简单来说就是一个界面,一个用于与用户交互的界面,一个app有最少一个Activity。

二、生命周期

    一个Activity的生命周期在app执行的过程中有运行(Running)、暂停(Paused)、停止(Stopped)、被销毁(Killed)这四个状态。在用户或安卓系统做了某些措施(执行相关方法)后,该Activity的生命周期会发生相应的变化。

安卓的三个基本概念:Activity、Adapter 和 List 

                    Activity的状态转换图解

Activity状态
状态    是否有内存实例 用户是否可见 是否处于最前面
Killed N N N
Stopped Y N N
Paused Y Y N
Running Y Y Y

下面用Android Studio的日志更清晰的给大家展示一下Activity生命周期的转换。

先在Activity.java中 加入以下方法:

private static final String TAG = "aActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG,"onCreate() called");
        setContentView(R.layout.activity_quiz);
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d(TAG,"onResume() called");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.d(TAG,"onPause() called");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d(TAG,"onDestroy() called");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d(TAG,"onStop() called");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.d(TAG,"onStart() called");
    }
安卓的三个基本概念:Activity、Adapter 和 List

可以看到 当我们打开应用的时候,同时调用了onCreate(),onStart(),onResume()三个方法,而当我们按下后退键关闭应用的时候,调用了onPause(),onStop(),onDestroy()三个方法。

三、不同Activity中的转换

先介绍几个概念:

ActivityManager:安卓系统中控制Activity的结构,当我们按下后退键,home键时,其实是把Activity交给安卓系统的ActivityManager处理

Activity栈:用于存放若干个Activity(不一定属于同一个应用)的栈。

intent类:可用于在一个Activity中调用另外一个Activity类、在不同activity中传递数据。

    //firstActivity.java
    Intent intent = new Intent(firstActivity.this, secondActivity.class); 
    intent.putExtra("stringData", "hello"); 
    intent.putExtra("intData", 100);

这里我们构造了一个新intent,在firstActivity中调用secondActivity,并调用intent的putExtra函数,把stringData,intData俩个个变量传递给secondActivity中

getIntent().getStringExtra("stringData");  
getIntent().getIntExtra("intData", 0);  

调用相应的getIntent().getXXXExtra()以返回从firstActivity中传递的变量值。


Adapter

一、概念

Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。经常与listView连用

二、分类及用法

BaseAdapter,ArrayAdapter,SimpleAdapter等等

其中这三个是最常用的

BaseAdapter

使用起来比其他适配器有些麻烦,但是使用它却能实现很多自己喜欢的列表布局,比如ListView、GridView、Gallery、Spinner等等。它是直接继承自接口类Adapter的,使用BaseAdapter时需要重写很多方法.其中这四个方法最重要

  1. getCount : 要绑定的条目的数目,比如格子的数量
  1. getItem : 根据一个索引(位置)获得该位置的对象
  1. getItemId : 获取条目的id
  1. getView : 获取该条目要显示的界面

ArrayAdapter

列表的显示需要三个元素:

  1. ListVeiw 用来展示列表的View。
  1. 适配器 用来把数据映射到ListView上的中介。
  1. 数据    具体的将被映射的字符串,图片,或者基本组件。主要用于简单的文本字符串的实现

SimpleAdapter

SimpleAdapter与BaseAdapter类似,也可以比较灵活。

SimpleAdapter使用的数据结构是 HashMap ,这意味着,如果需要操作的数据对象结构过于复杂时,比如成员很多,成员内容不是基本类型等情况时,需要写相关的转化代码,这会便利程序的效率和可维护性变差 。有时,我们会面临使用哪种适配器的问题。如果数据结构很简单,操作的数据对象成员很少,没有非基本类型的数据成员,只是做为简单的展示,那么 simpleadapter 是很好的选择,简捷高效快速。如果成员很多,成员中包含复杂的对象,如 Button , darwable 等,使用baseadapter 会让代码变得简捷效率。

List

安卓的三个基本概念:Activity、Adapter 和 List


如图所示,List是继承至Collection的一个接口

一个 List 是一个元素有序的、可以重复、可以为 null 的集合(有时候我们也叫它“序列”)。
Java 集合框架中最常使用的几种 List 实现类是 ArrayList,LinkedList 和 Vector。在各种 List 中,最好的做法是以 ArrayList 作为默认选择。 当插入、删除频繁时,使用 LinkedList,Vector 总是比 ArrayList 慢,所以要尽量避免使用它。

List并不是Android特有的结构,在此不做详细介绍。


相关标签: android y