• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android应用项目中BaseAdapter、SimpleAdapter和ArrayAdapter中的三种适配器,simplearrayadapter

Android应用项目中BaseAdapter、SimpleAdapter和ArrayAdapter中的三种适配器,simplearrayadapter

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了Android应用项目中BaseAdapter、SimpleAdapter和ArrayAdapter中的三种适配器,simplearrayadapter等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android应用项目中BaseAdapter、SimpleAdapter和ArrayAdapter中的三种适配器,simplearrayadapter


一、写在前面:

  本次我们来讲解一下Android应用中三个适配器:BaseAdapter、SimpleAdapter和ArrayAdapter。其中常见的是BaseAdapter,也是个人推荐使用的适配器。

二、深入了解:

  1.什么是适配器?

   适配器:在安卓中,顾名思义就是把数据变成符合界面风格的形式,并且通过ListView显示出来。也就是说适配器是数据和界面之间的桥梁。

   适配器在数据库中的数据(后台)和显示页面(前端)中充当一个转换器的角色,数据库中的数据(如数组,链表,数据库,集合等)通过适配器变成类手机页面能够正常显示的数据。可以看作是界面数据绑定的一种理解。假设把数据、适配器和ListView(页面)比喻成一个MVC模式的话,那么适配器(Adapter)在这中间就充当了Controller的角色。

  

  2.为什么对象设置数据源   

   一般是为ListView提供数据的转换,当然GridView[网格视图]、Spinner[下拉列表]、Gallery[画廊]、ViewPage等都需要使用适配器来为其设置数据源。

 

三、代码示例:

   ArrayAdapter示范:

    要求:使用数组适配器输出相对应的数据到ListView中

    1、首先、创建Android工程,后在布局文件中定义一个ListView,并且设置好相关属性:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</RelativeLayout>

 

     2、其次、在activity类中书写代码,具体请看代码,并且代码上有相关的注释

package com.mqz.android_arrayadapter;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;


public class MainActivity extends Activity {
    
      private ListView listView;    //定义ListView用来获取到,布局文件中的ListView控件
        private String[] city = {"广州","深圳","北京","上海","香港","澳门","天津"} ;  //定义一个数组,作为数据源
        private ArrayAdapter<String> arrayAdapter;    //定义一个数组适配器对象

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            listView = (ListView)findViewById(R.id.listView); //获取布局文件中的ListView控件对象

/* * Context context, 上下文对象 * int resource, items项显示的布局样式,一般是系统的布局文 android.R.layout.** (但是需要选择和ListView相适合的布局文件否则运行报错) * String[] objects 数组对象(数据源) * * */ //创建数组适配器对象,并且通过参数设置类item项的布局样式和数据源 arrayAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1, city); //把数组适配器加载到ListView控件中 listView.setAdapter(arrayAdapter); } }

 

     3、运行结果:这样不需要我们自己定义TextView控件中的内容,通过数组适配器实现了这一个目的。

        

  


    

   SimpleAdapter示范:

     要求:把后台数据填充到页面,其中包括需要填充的有TextView和ImageView,也就是名字和图片显示到页面上。

     1、首先,创建好android工程,并且在主布局文件中添加一个ListView控件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context="com.mqz.android_simpleadapter.MainActivity" >
        
    <ListView 
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        ></ListView>

</LinearLayout>

 

       2、其次,在Activity类中书写代码,其间附有注释,具体如下:

  

package com.mqz.android_simpleadapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity {

    private ListView listView;   //定义ListView对象,用来获取布局文件中的ListView控件
    private String[] name = {"小明","小华","小梁","小王","小林","小赵"};  //定义一个名字数组,用来为数据源提供姓名
    private int[] images = {R.drawable.one,R.drawable.two,R.drawable.three,R.drawable.four,R.drawable.five,R.drawable.six};//定义一个 整形数组,用来为数据源中的头像 
    private List<Map<String,Object>> list_map = new ArrayList<Map<String,Object>>(); //定义一个适配器对象
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        listView = (ListView) findViewById(R.id.listView); //获取布局文件中的ListView对象
        
        //1.准备好数据源,循环为listView添加数据(数据源的准备工作,这里是模拟从SQLite中查询数据)
        for(int i=0;i<6;i++){
            Map<String,Object> items = new HashMap<String, Object>(); //创建一个键值对的Map集合,用来存放名字和头像
            items.put("pic", images[i]);  //放入头像, 根据下标获取数组
            items.put("name", name[i]);      


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android应用项目中BaseAdapter、SimpleAdapter和ArrayAdapter中的三种适配器,simplearrayadapter

相关文章

  • 2017-05-26类似微信朋友圈,点击+号图片,可以加图片,信朋友圈
  • 2017-05-26java中random随机函数的一些理解
  • 2017-05-26Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能
  • 2017-05-26android:省市二级联动下拉框
  • 2017-05-26Android开发学习—— shape标签的使用,androidshape
  • 2017-05-26Android pendingInten 用法详解
  • 2017-05-26Android 面试题--Activity,android--activity
  • 2017-05-26Intent(二)隐式调用intent,调用intent
  • 2017-05-26Android学习笔记-Button(按钮),android-button
  • 2017-05-26自定义Toast的显示位置和显示内容,自定义toast

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Linux内核系列—C语言中内嵌汇编 asm __volatile__,asm__volatile_
    • Android Studio添加Parcelable序列化小工具(快速提高开发效率)
    • 最新Android系统版本与API等级对应关系表,androidapi
    • BaseAdapter的使用(笔记)
    • 【React Native开发】React Native控件之ProgressBarAndroid进度条讲解(12)
    • Eclipse下配置Ant脚本 自动打包带签名的Android apk(PC环境为MAC)
    • 6.2 数据存储与访问之——SharedPreferences保存用户偏好参数
    • overridePendingTransition,transition
    • Android编译错误——undefined reference to,androidundefined
    • x11vnc无法识别大写状态键的解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有