UI组件适配器AdapterView(创建ListView,Adapter接口).

Android--- UI组件AdapterView and 适配器Adapter Android--- AdapterView and AdapterUI控件 -- AdapterViewListView简单的ListView实现图文ListView实现ListView的监听函数GridViewSpinnerAdapterViewFlipper 和 StackView适配器 -- Adapter UI控件 – AdapterView AdapterView是常用的安卓UI控件 AdapterView继承了ViewGroup.它的本质是容器。 AdapterView显示的多个“列表项” 阅读详情
@version:Android4.3 API18 

@author:liuxinming

概述

              AdapterView继承了ViewGroup,它的本质是容器
              AdapterView 可以包含多个 “列表项”,并将多个“列表项”以合适的形式显示出来
              AdapterView显示的多个“列表项”由Adapter提供

类图



ListView(列表视图)

ListView以垂直列表的形式显示所有列表项

创建方式:

                          1、直接使用ListView创建
                          2、让Activity继承ListActivity(相当于该Activity显示的组件为ListView)
在程序中获得了ListView之后,接下来就需要为ListView设置它要显示的列表项
注释:ListView、GridView、Spinner、Gallery等AdapterView都只是容器,而Adapter负责提供每个“列表项”组件,AdapterView则负责采用合适的方式显示这些列表项。

XML属性

AbsListView属性

XML属性相关方法说明
android:choiceMode 设置AbsListView的选择行为,支持下列属性值
none:不显示任何选中项 value=0
singleChoice:允许单选 value=1
multipleChoice:允许多选 value=2
multipleChoiceModal:允许多选 value=3
android:DrawSelectorOnTopsetDrawSelectoronTop(boolean)true:选中的列项将会显示在上面
android:fastScrollEnabled 设置是否允许快速滚动
true:显示滚动图标,并允许用户拖动该滚动图标进行快速滚动
android:listSelectorsetSelector(int)指定被选中的列表项上绘制的Drawable
android:scrollingCache true:该组件在滚动时将会使用绘制缓存
android:smoothScrollbarsetSmoothScrollbarEnable(boolean)false:则不在header View之后绘制分割线
android:stackFromBottom 设置是否从底端开始排列列表项
android:textFilterEnable 设置是否对列表项进行过滤
注释:当该AbsListView对应的Adapter实现了Filter接口时该属性才会起作用
android:transcriptMode 设置该组件的滚动模式。该属性支持如下属性
disabled:关闭滚动。默认值
normal:当该AbsListView受到数据改变通知,且最后一个列表项可见时,该AbsListView将会滚动到底端
alwaysScroll:该AbsListView总会自动滚动到底端

ListView常用XML属性
android:divider设置List列表项的分割线(即可用颜色分割,也可用Drawable分割)
android:dividerHeight分割线的高度
android:entries指定一个数组资源,Android将根据该数组资源来生成ListView
android:footerDividersEnabledfalse:则不在footer View之前绘制分隔线
android:headerDividersEnabledfalse:则不在header View之后绘制分隔线

使用数组创建ListView实例

Android_ListView/res/layout/activity_main.xml
[html]  view plain copy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:orientation="vertical"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.  >  
  6.     <!-- 使用数组资源给出列表项 -->  
  7.     <ListView   
  8.         android:layout_width="fill_parent"  
  9.         android:layout_height="wrap_content"  
  10.         android:entries="@array/code"  
  11.         android:divider="#f00"  
  12.         android:dividerHeight="2dp"  
  13.         android:headerDividersEnabled="false"  
  14.         />  
  15. </LinearLayout>  

Android_ListView/res/values/arrays.xml
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <resources>  
  3.     <string-array name="code">  
  4.         <item>Android</item>  
  5.         <item>PHP</item>  
  6.         <item>Java</item>  
  7.         <item>C</item>  
  8.         <item>C++</item>  
  9.     </string-array>  
  10. </resources>  


调试效果
这是一个比较简单的案例,这种方式创建ListView能定制的内容很少


Adapter(接口)

     Adapter本身只是一个接口
     它派生了ListAdapter和SpinnerAdapter两个子接口,其中ListAdapter为AbsListView提供列表项,而SpinnerAdapter为AbsSpinner提供列表项

接口及其实现类的继承关系类图

    接口间接类较多,可能画的有点凌乱,我整理了很几次,看着也好像有点凌乱,呵呵。凑活着看吧

Adapter常用的实现类

1、ArrrayAdapter:简单、易用,通常用于数组或List集合的多个值包装成多个列表项
2、SimpleAdapter:功能有点强,可用于将List集合的多个对象包装成多个列表项
3、SimpleCursorAdapter:与SimpleAdapter基本相似,只是用于包装Cursor提供的数据
4、BaseAdapter:通常用于被扩展。扩展BaseAdapter可以对各列表项进行最大限度的定制

实现类一:ArrayAdapter实例

    设计场景:通过界面布局定义两个ListView,但这两个ListView都不指定android:entries属性(哈哈,区别来啦,前面一个简单例子,我们是通过配置XML数组资源)
                        我们通过Activity为两个ListView提供Adapter,Adapter来控制所显示的列表项
                        注释:这个有点像WEB开发的模板机制,定义好数据格式后,通过后端程序来控制数据资源需要显示的内容。
    Android_ListView/layout/Activity_main.xml
    
[html]  view plain copy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:orientation="vertical"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.  >  
  6.     <!-- 定义两个ListView -->  
  7.     <ListView   
  8.         android:id="@+id/list01"  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="wrap_content"  
  11.         android:divider="#f00"  
  12.         android:dividerHeight="2dp"  
  13.         android:headerDividersEnabled="false"  
  14.         />  
  15.     <ListView   
  16.         android:id="@+id/list02"  
  17.         android:layout_width="fill_parent"  
  18.         android:layout_height="wrap_content"  
  19.         android:divider="#f00"  
  20.         android:dividerHeight="2dp"  
  21.         android:headerDividersEnabled="false"  
  22.         />  
  23. </LinearLayout>  
 Android_ListView/res/layout/array_item.xml
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <TextView  
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:id="@+id/TextView"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="wrap_content"  
  7.     android:textSize="24sp"  
  8.     android:padding="10dp"  
  9.     android:shadowColor="#f0f"  
  10.     android:shadowDx="4"  
  11.     android:shadowDy="4"  
  12.     android:shadowRadius="2"  
  13.     />  

Android_ListView/res/layout/checked_item.xml
[html]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <CheckedTextView  
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:id="@+id/TextView"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="wrap_content"      
  7.     android:textSize="24sp"  
  8.     android:checkMark="@drawable/ok"  
  9.     android:shadowColor="#f0f"  
  10.     android:shadowDx="4"  
  11.     android:shadowDy="4"  
  12.     android:shadowRadius="2"/>  

Android_ListView/src/com/example/android_listview/MianActiviy.java
[java]  view plain copy
  1. package com.example.android_listview;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.view.Menu;  
  6. import android.widget.ArrayAdapter;  
  7. import android.widget.ListView;  
  8.   
  9. public class MainActivity extends Activity {  
  10.   
  11.     @Override  
  12.     protected void onCreate(Bundle savedInstanceState) {  
  13.         super.onCreate(savedInstanceState);  
  14.         setContentView(R.layout.activity_main);  
  15.         ListView list01 = (ListView) findViewById(R.id.list01);  
  16.         ListView list02 = (ListView) findViewById(R.id.list02);  
  17.         //定义数组  
  18.         String[] data1 = {"屌丝","高富帅","白富美"};  
  19.         String[] data2 = {"Android","PHP","Java","C","C++"};  
  20.           
  21.         //将数组包装为ArrayAdapter  
  22.         ArrayAdapter<String> adapter1 = new ArrayAdapter<String>  
  23.         (this,R.layout.array_item,data1);  
  24.         ArrayAdapter<String> adapter2 = new ArrayAdapter<String>  
  25.         (this,R.layout.checked_item,data2);  
  26.           
  27.         //为ListView 设置 Adapter  
  28.         list01.setAdapter(adapter1);  
  29.         list02.setAdapter(adapter2);  
  30.     }  
  31.   
  32.     @Override  
  33.     public boolean onCreateOptionsMenu(Menu menu) {  
  34.         // Inflate the menu; this adds items to the action bar if it is present.  
  35.         getMenuInflater().inflate(R.menu.main, menu);  
  36.         return true;  
  37.     }  
  38.   
  39. }  

调试效果
 知识点:
               ArrayAdapter<String> adapter1 = new ArrayAdapter<String>
(this,R.layout.array_item,data1)
             创建ArrayAdapter时必须指定的三个参数:
             1、Context:代表了访问整个Android应用的接口。
             2、textViewResourceld:一个资源ID,该资源ID代表一个TextView,该TextView组件将作为ArrayAdapter的列表项组件
             3、数组或List:该数组或List将负责为多个列表项提供数据

ListActivity实现列表

如果窗口仅仅需要显示一个列表,则可以直接让Activity继承ListActivity来实现,ListActivity的子类无需调用setContentView()方法来显示某个界面
而是可以直接传入一个内容Adapter,ListActivity子类就呈现出一个列表

Android_ListView/src/com/example/android_listview/MianActiviy.java
[java]  view plain copy
  1. package com.example.android_listview;  
  2.   
  3. import android.app.ListActivity;  
  4. import android.os.Bundle;  
  5. import android.widget.ArrayAdapter;  
  6.   
  7. /** 
  8.  * @author  LiuxinMing 1235355@qq.com 
  9.  */  
  10. public class MainActivity extends ListActivity  
  11. {  
  12.     @Override  
  13.     public void onCreate(Bundle savedInstanceState)  
  14.     {  
  15.         super.onCreate(savedInstanceState);  
  16.         // 无需使用布局文件  
  17.         String[] arr = {"屌丝","高富帅","白富美"};  
  18.         // 创建ArrayAdapter对象  
  19.         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,  
  20.             android.R.layout.simple_list_item_multiple_choice, arr);  
  21.         // 设置该窗口显示列表  
  22.         setListAdapter(adapter);  
  23.     }  
  24. }  

调试效果:


实现类二:SimpleAdapter创建ListView

实现步骤

                 1、先在界面布局中定义一个ListVew(该ListView将会显示由SimpleAdapter提供的列表项)
                 2、创建一个list集合(可选)
                 3、创建SimpleAdapter
                 4、为ListView设置Adapter
Android_SimpleAdapter/res/layout/activity_main.xml
[html]  view plain copy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:orientation="horizontal"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="wrap_content"  
  5.     >  
  6.     <!-- 定义一个ListView -->  
  7.     <ListView   
  8.         android:id="@+id/list01"  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="wrap_content"  
  11.         />  
  12. </LinearLayout>  

Android_SimpleAdatper/res/layout/simple_item.xml
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="horizontal"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="wrap_content"  
  6.     >  
  7.     <!-- 定义一个ImageView,用于作为列表项的一部分 -->  
  8.     <ImageView android:id="@+id/header"  
  9.         android:layout_width="100dp"  
  10.         android:layout_height="100dp"  
  11.         android:scaleType="centerCrop"  
  12.         android:paddingLeft="10dp"  
  13.         />  
  14.     <LinearLayout   
  15.         android:orientation="vertical"  
  16.         android:layout_width="match_parent"  
  17.         android:layout_height="wrap_content"  
  18.         >  
  19.         <!-- 定义一个TextView,用于作为列表项的一部分 -->  
  20.         <TextView android:id="@+id/name"  
  21.             android:layout_width="wrap_content"  
  22.             android:layout_height="wrap_content"  
  23.             android:textSize="20dp"  
  24.             android:textColor="#f0f"  
  25.             android:paddingLeft="10dp"  
  26.             />  
  27.         <!-- 定义一个TextView,用于作为列表项的一部分 -->  
  28.         <TextView android:id="@+id/desc"  
  29.             android:layout_width="wrap_content"  
  30.             android:layout_height="wrap_content"  
  31.             android:textSize="14dp"  
  32.             android:paddingLeft="10dp"  
  33.             />  
  34.     </LinearLayout>  
  35. </LinearLayout>  

activity代码
[java]  view plain copy
  1. package com.example.android_simpleadapter;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.HashMap;  
  5. import java.util.List;  
  6. import java.util.Map;  
  7.   
  8. import android.os.Bundle;  
  9. import android.app.Activity;  
  10. import android.util.Log;  
  11. import android.view.Menu;  
  12. import android.view.View;  
  13. import android.widget.AdapterView;  
  14. import android.widget.AdapterView.OnItemClickListener;  
  15. import android.widget.ArrayAdapter;  
  16. import android.widget.ListView;  
  17. import android.widget.SimpleAdapter;  
  18.   
  19. public class MainActivity extends Activity {  
  20.     private String tag = "SimpleAdapterActivity";  
  21.     private String[] names = new String[]  
  22.             {  
  23.                 "觉悟",  
  24.                 "学习",  
  25.                 "能力"  
  26.             };  
  27.     private String[] descs =  new String[]  
  28.             {  
  29.                 "对工作生活的觉悟",  
  30.                 "对新鲜事物的认知能力",  
  31.                 "对学习的掌握能力"  
  32.             };  
  33.     private int[] imageId = new int[]  
  34.             {  
  35.                 R.drawable.consciousness,  
  36.                 R.drawable.learn,  
  37.                 R.drawable.ability  
  38.             };  
  39.     @Override  
  40.     protected void onCreate(Bundle savedInstanceState) {  
  41.         super.onCreate(savedInstanceState);  
  42.         setContentView(R.layout.activity_main);  
  43.         //创建一个List集合,List集合的元素是Map  
  44.         List<Map<String,Object>> listItems =   
  45.                 new ArrayList<Map<String,Object>>();  
  46.         for (int i=0; i<names.length;i++)  
  47.         {  
  48.             Map<String,Object> listItem = new HashMap<String,Object>();  
  49.             listItem.put("header", imageId[i]);  
  50.             listItem.put("personName", names[i]);  
  51.             listItem.put("desc", descs[i]);  
  52.             listItems.add(listItem);  
  53.         }  
  54.         //创建一个 SimpleAdapter  
  55.         SimpleAdapter simpleAdapter = new SimpleAdapter(this,listItems,  
  56.                 R.layout.simple_item,  
  57.                 new String[] {"personName","header","desc"},  
  58.                 new int[] {R.id.name,R.id.header,R.id.desc}  
  59.                 );  
  60.         ListView list = (ListView) findViewById(R.id.list01);  
  61.         //为ListView 设置Adapter  
  62.         list.setAdapter(simpleAdapter);  
  63.         //为ListView的列表项的点击事件绑定事件监听器  
  64.         list.setOnItemClickListener(new OnItemClickListener()  
  65.         {  
  66.   
  67.             @Override  
  68.             public void onItemClick(AdapterView<?> parent, View view, int position,  
  69.                     long id) {  
  70.                 // TODO Auto-generated method stub  
  71.                  Log.d(tag, names[position]+"被单击了");    
  72.             }  
  73.               
  74.         });           
  75.     }  
  76.   
  77.     @Override  
  78.     public boolean onCreateOptionsMenu(Menu menu) {  
  79.         // Inflate the menu; this adds items to the action bar if it is present.  
  80.         getMenuInflater().inflate(R.menu.main, menu);  
  81.         return true;  
  82.     }  
  83.   
  84. }  


知识点:
SimpleAdapter对象,它需要5个参数
第二个参数:该参数应该是一个List<? extends Map<String,?>>类型的集合对象,该集合中每个Map<String,?>对象生成一个列表项
第三个参数:该参数指定一个界面布局的ID。
第四个参数:该参数应该是一个String[]类型的参数,该参数决定提取Map<String,?>对象中那些key对应的value来生产列表项。
第五个参数:该参数应该是一个int[] 类型的参数,该参数决定填充那些组件
藏上面的代码看,listItems是一个长度为4的集合,这意味着它生产的ListView将会包含4个列表项,每个列表项都是R.layout.simple_item对应的组件。组件内容由listItems集合提供。
调试效果


绑定的单击事件,我们看下日志(刚才我们绑定了列表项单击事件,并单击后输出log)



实现类四:BaseAdapter

扩展BaseAdapter可以取得对Adapter最大的控制权:程序要创建多少个列表项,每个列表项的组件都由开发者来决定。
比较自由
扩展该对象需要重写如下4个方法:
1、getCount():该方法的返回控制该Adapter将会包含多少个列表项
2、getItem(int position):该方法的返回值决定第position处的列表项的内容
3、getItemId(int position):该方法的返回值决定第position处的列表项的ID
4、getView(it position,View convertView,viewGroup parent):该方法的返回值决定第position处的列表项组件
NVIDIA 2025 Board Design Engineer 校招笔试 电路分析,矩形波阶跃反馈驱动​,误差信号。非常简单,数电or​离散基础。第一题是考试规矩知情确认。大二暑假做的,纯体验​。五六题太长,下篇分享。 阅读详情

相关推荐

Hermes V0.10.0:官方UI几乎无Bug版

如果你还在观望Hermes,现在可能是最好的入局时机。 因为网页端来了,门槛降到了最低。 如果你已经是Hermes用户,升级就对了。 因为0.9.0的更新,值得一试。

weixin_66295112的博客 2046

【Android容器组件—AdapterView】

AdapterView是一类常用且非常重要的组件。我们常见的以列表的形式显示信息的组件就是AdapterView的子类,称为Listview.用Listview实现一些基本布局

m0_56233309的博客 6774

不只是CPU主频:深入解析英飞凌Aurix TC3xx各外设时钟树(CAN、以太网、Flash时序如何配置)

本文深入解析英飞凌Aurix TC3xx系列微控制器的外设时钟树配置,涵盖CAN、以太网和Flash时序的优化方法。通过详细分析时钟系统架构、关键外设配置及多外设协同设计策略,帮助工程师实现高性能汽车电子控制单元(ECU)开发。特别关注系统时钟的灵活配置与EMC优化技巧,提升系统实时性和可靠性。

weixin_29189373的博客 401

Android用户界面 UI组件--AdapterView及其子类(一) ListView及各种Adapter详解

ListView就是列表组件,一般通过继承ListActivity使用系统提供的ListView. 所有的AdapterView组件都需要有一个对应的Adapter作为适配器来显示列表中元素的布局方式 见思维导图 AbsListView的常用XML属性: android:choiceMode 设置ListView的选择行为 none:不...

weixin_30706691的博客 256

光伏电站发电功率预测实战:从基础物理模型到LSTM时间序列分析

本文系统介绍了光伏电站发电功率预测的实战方法,从基础的物理晴空模型到先进的LSTM时间序列分析。通过结合电工杯等竞赛中常用的代码与模型,详细阐述了如何利用历史数据和数值天气预报构建高精度预测体系,并针对阴雨天气等预测瓶颈提出了分场景建模与模型融合等优化策略,为电站运维和电网调度提供可靠的数据支持。

pp12345的博客 216

Bootloader Design of PIC18 series MCU

注意:下列描述是在PIC单片机上启用Bootloader的一个相关知识的近似完备集。所有需要了解的,与bootloader与用户态程序交互的理论知识都已给出。包含内存组织,跳转,中断等必备功能的描述。

含光左卫的工作笔记集 1267

android-UI组件(四):AdapterView及其子类

AdapterView组件是一组重要的组件,AdapterView本身是一个抽象基类,它派生的子类在用法上十分相似,知识显示界面有些不同, 下面是AdapterView及其子类的继承关系类图: 从AdapterView派生出的三个子类:AdsListView、AdsSpinner、AdapterViewAnimator,这3个子类依然是抽象的,实际运用时需要它们的子类。 1、List

Jeff Li 4591

实战指南:CentOS 7下VOS3000 8.0从零部署到授权激活全流程

本文提供了一份详尽的CentOS 7系统下部署VOS3000 8.0的实战指南。从环境准备、使用FileZilla上传安装包、执行自动化安装脚本,到获取软件码、利用注册机生成授权文件并激活,手把手带领用户完成从零部署到投入商用的全流程,确保系统稳定运行。

zero1的博客 896

Android开发10.1:UI组件适配器AdapterView(创建ListView,Adapter接口)-更新20130912

@version:Android4.3 API18 @author:liuxinming 概述               AdapterView继承了ViewGroup,它的本质是容器               AdapterView 可以包含多个 “列表项”,并将多个“列表项”以合适的形式显示出来               AdapterView显示的多个“列表项”由Adapt

巴途Way,专注Go,PHP,C开发 3822

手把手教你学SOC芯片架构--NoC(片上网络,Network on Chip)全方位解析

​、​。

MHD0815的博客 865

8.26华为OD机试真题 新系统 - 字符串回文判 (Java/Py/C/C++/Js/Go)

8.26华为OD机试真题 新系统 - 字符串回文判 (Java/Py/C/C++/Js/Go)

算法大师! 1236

API 25 (Android 7.1.1 API) widget.AdapterView

Android API 25 (Android 7.1.1 API) AdapterView public abstract class AdapterView extends ViewGroup Added in API level 1   java.lang.Object    ↳android.view.View      ↳androi

上帝也疯狂 1052

Android 系统低内存lowmemorykiller关于阈值修改 minfreeAbsKbytes优化

在系统rom定制化开发中,在对于运行内存ram 1G和2G的设备中,对于内存使用高峰期时,minfreeAbsKbytes优化很关键 调整合理的minfree,让内存合理的使用很关键,接下来分析相关功能的实现

安卓兼职framework和app工程师的博客 524

Android开发10.1:UI组件适配器AdapterView(创建ListView,Adapter接口)

Android开发10.1:UI组件适配器AdapterView(创建ListView,Adapter接口)-更新20130912 概述               AdapterView继承了ViewGroup,它的本质是容器               AdapterView 可以包含多个 “列表项”,并将多个“列表项”以合适的形式显示出来            

u012422855的专栏 845

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

AdapterView与Adapter

AdapterView与Adapter

lunious的博客 2265

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android学习——Adapter适配器

AdapterView: 容器控件,其整体效果由每一个子元素内容决定,子元素的形式由Adapter决定。 AdapterView的子视图对象: ListView:以垂直滑动列表形式显示一组数据。 GridView:以网格形式显示一组数据。 Spinner:以下拉列表形式显示一组数据。 Gallery:以水平滑动列表形式显示一组数据。(此类已弃用,由HorizontalScrollView和ViewPager代替 Adapter: 数据和视图之间交互的中介 Android中的常用Adapt.

g_csdn1的博客 7755

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Android——适配器Adapter与AdapterView

目录1.MVC模式的简单理解2.Adapter概念解析1.运用2.效果展示3.ListView 1.MVC模式的简单理解 举个例子:在开发一个项目的时候,一般都是由多人一同开发完成,比如有人负责操作接口的规划与设计,有人负责程序代码的编写如果要能够做到程序项目的分工就必须在程序的结构上做适合的安排,如果,接口设计与修改涉及到程序代码的改变的话,那么两者的分工就会造成执行上的困难,良好的程序架构师将整个程序项目划分为如图的三个部分: 关系图解析: Model:通常可以理解为数据,负责执行程序的核心运算

mengmengde_的博客 1605

AdapterView类视图控件的使用,Fragment,ViewPager2视图控件的使用

Adapter(适配器)是连接后端数据与前端视图的接口,是数据与视图之间交互的中介。众所周知,Android用户界面采用MVC框架,即model-view-controller,model和view可理解为是数据和视图,而Adapter就属于中间的controller部分。用Adapter作为数据和视图之间交互的中介,就可以将这两部分分开操作:数据改变时,不需要修改视图组件,只需更新Adapter;视图组件改变时,不需要修改数据,只需绑定Adapter即可。:容器控件,整体由一个个子元素item组成,

IH_LZH的博客 2129

UI组件之AdapterView及其子类(一)三种Adapter适配器填充ListView

AdapterView的内容一般是包含多项相同格式资源的列表,常用的有5种AdapterView的子类: (1)ListView:简单的列表 (2)Spinner:下拉列表,给用户提供选择 (3)Gallery:缩略图,已经被水平的ScrollView和ViewPicker取代,但也还算常用,是一个可以把子项以中心锁定,水平滚动的列表 (4)GridView:网格图,以表格形式显示资源,可

tuke_tuke的博客 7889

Android界面编程之五 第四组UI组件:AdapterView及其子类

AdapterView本身是一个抽象基类,它派生的子类在用法上十分相似,只是显示界面有一定区别 AdapterView继承了ViewGroup AdapterView可以包括多个“列表项” AdapterView显示的多个“列表项”由Adapter提供调用AdapterView的setAdapter(Adapter)方法设置Adapter AdapterView派生了三个子类:AbsLis

编程问题与思索 819

Android之AdapterView 简述

&lt;strong&gt;夜风凛凛 独回望旧事前尘 是以往的我 充满怒愤 诬告与指责 积压着满肚气不愤 对谣言反应 甚为着紧 受了教训 得了书经的指引 现已看得透 不再自困 但觉有分数 不再像以往那般笨 抹泪痕 轻快笑着行 冥冥中都早注定你富或贫 是错永不对 真永是真 任你怎说安守我本份 始终相信 沉默是金 是非有公理 慎言莫冒犯别人 遇上冷风雨休太认真 自信满心里 休理会讽刺与质问 笑骂由人...

LoverLeslie的博客 1297

ListView及ListAdapter详解

ListView及ListAdapter详解一、AdapterView1. 简介An AdapterView is a view whose children are determined by an Adapter. 简单地说就是其子视图是由适配器决定的视图组件2. 子类 ListView GridView Spinner Gallery 3. 常用方法//功能:获取list中指定位置item g

技术路漫漫 1万+

第3组UI组件:AdapterView及其子类

1 AdapterView类简介   1.1AdapterView组件是一组重要的组件,AdapterView本身是一个抽线类,实际使用更多的都是Adapter相关子类,AdapterView具有如下特征: AdapterView继承了ViewGroup,它的本质是容器 AdapterView可以包括多个列表项,并将多个“列表项”以合适的形式显示出来 AdapterView显示的多个列表项有...

u010217394的博客 157
上一篇: Android打造(ListView、GridView等)通用的下拉刷新、上拉自动加载的组件
下一篇: 详解Android中AsyncTask的使用
mypanlong
博客等级 码龄19年 194粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值