• 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 > BaseAdapter的使用(笔记)

BaseAdapter的使用(笔记)

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

网友通过本文主要向大家介绍了baseadapter的使用,baseadapter,baseadapter详解,baseadapter的用法,android baseadapter等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

BaseAdapter的使用(笔记)


\

 

 

适配器模式的应用:

 

1.降低程序耦合性

2.容易扩展

 

BaseAdapter

ListView的显示与缓存机制:需要才显示,显示完就被会受到缓存。

BaseAdapter基本结构

--public int getCount(); 适配器中数据集中数据的个数

--public Object getItem(int position):获取数据集中与指定索引对应的数据项

--public long getItem(int position):获取指定行对应的ID

--public View getView(int position, ViewconverView, ViewGroup parent):获取每一个Item的显示内容

 

 

第一步: 创建布局文件 activity_main.xml 创建好了一个简单的listView

创建item布局文件item.xml,其中有一个ImageView 两个 TextView

 

activity_main.xml

 



    




 

 

item.xml

 


    
    
    
    



 

效果如图:

\

 

第二步:创建一个Bean对象ItemBean,封装item中显示的内容,在主页面MainActivity.java里面创建数据源

ItemBean.java

 

public class ItemBean {

	public int ItemImageResid;
	public String Itemtitle;
	public String ItemContent;
	
	public ItemBean(int itemImageResid, String itemtitle, String itemContent) {
		super();
		ItemImageResid = itemImageResid;
		Itemtitle = itemtitle;
		ItemContent = itemContent;
	}
	
}

 

 

MainActivity.java

 

package com.example.sr;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        List itemBeanList = new ArrayList();
        for(int i = 0; i < 20; i++){
        	itemBeanList.add(new ItemBean(R.drawable.ic_launcher, "我是标题"+i, "我是内容"+i));
        }
    }
}

 

 

第三步:新建MyAdapter类,继承自BaseAdapter , 重写里面的方法,实现适配器

MyAdapter.java

 

package com.example.sr;

import java.util.List;

import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;

public class MyAdapter extends BaseAdapter {

	private List mList;
	
	public MyAdapter(List list){  //数据源与适配器进行了关联
		mList = list;
	}
	
	@Override
	public int getCount() { //返回ListView需要显示的数据量
		// TODO Auto-generated method stub
		return mList.size();
	}

	@Override
	public Object getItem(int position) {//获取数据集中与指定索引对应的数据项
		// TODO Auto-generated method stub
		return mList.get(position);
	}

	@Override
	public long getItemId(int position) {//获取指定行对应的ID
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public View getView(int arg0, View arg1, ViewGroup arg2) {//返回每一项的显示内容
		// TODO Auto-generated method stub
		return null;
	}

}


上面最主要的是getView方法,还没有实现,下面介绍getView方法实现的三重境界

 

1.逗比式

MyAdapter.java

 

package com.example.sr;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MyAdapter extends BaseAdapter {

	private List mList;
	private LayoutInflater minflater;//布局装载器对象,用于把xml布局文件转化为view
	
	
	public MyAdapter(Context context, List list){  //数据源与适配器进行了关联
		mList = list;
		minflater = LayoutInflater.from(context);//context要使用当前的Adapter的界面对象
	}
	
	@Override
	public int getCount() { //返回ListView需要显示的数据量
		// TODO Auto-generated method stub
		return mList.size();
	}

	@Override
	public Object getItem(int position) {//获取数据集中与指定索引对应的数据项
		// TODO Auto-generated method stub
		return mList.get(position);
	}

	@Override
	public long getItemId(int position) {//获取指定行对应的ID
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public View getView(int postion, View convertView, ViewGroup parent) {//返回每一项的显示内容
		// TODO Auto-generated method stub
		View view = minflater.inflate(R.layout.item, null);
		//第一个参数为 需要装载到item.xml布局文件,第二个参数通常写null
		
		ImageView imageView = (ImageView) view.findViewById(R.id.iv_image);
		TextView title = (TextView)view.findViewById(R.id.tv_title);
		TextView content = (TextView)view.findViewById(R.id.tv_content);
		
		//将数据取出来赋给这三个控件
		ItemBean bean = mList.get(postion);
		imageView.setImageResource(bean.ItemImageResid);
		title.setText(bean.Itemtitle);
		content.setText(bean.ItemContent);
		
		return view;
	}

}

 

回到MainActivity.java 建立listView与MyAdapter的联系

MainActivity.java

 

package com.example.sr;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ListView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        List itemBeanList = new ArrayList();
        for(int i = 0; i < 20; i++){
        	itemBeanList.add(new ItemBean(R.drawable.ic_launcher, "我是标题"+i, "我是内容"+i));
        }
        
        //建立listView与MyAdapter的联系
        ListView listView = (ListView) findViewById(R.id.lv_main);
        listView.setAdapter(new MyAdapter(this, itemBeanList));//第一个参数为context,第二个是数据源
        
    }
}

 

至此,运行程序,发现listView可以显示我们想要的东西了。

\

 

 

为什么式逗比式呢?listView有

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

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

  • Android开发学习——ListView+BaseAdapter的使用,androidbaseadapter
  • BaseAdapter的使用(笔记)

相关文章

  • 2017-05-26Android——eclipse下运行android项目报错 Conversion to Dalvik format failed with error 1解决,androiddalvik
  • 2017-05-26我的Android进阶之旅------)Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换)
  • 2017-05-26andriod 带看括弧的计算器,andriod括弧计算器
  • 2017-05-26android开发时间和日期的代码实现工具类(一),android工具类
  • 2017-05-26Android--Activity在跳转时携带数据
  • 2017-05-26WebView上实现Java与JavaScript交互,webviewjavascript
  • 2017-05-2614条Android Studio常用的的配置
  • 2017-05-26xUtils3,xutils3github
  • 2017-05-26编译器开发系列--Ocelot语言6.静态类型检查,编译器--ocelot
  • 2017-05-26Mac版 Android Studio快捷键大全,android快捷键大全

文章分类

  • 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开发
    • zabbix 2.4.7 升级到 3.2.4
    • 文件缓存(配合JSON数组),缓存配合json数组
    • 【lushengduan】03、点击事件的四种实现方式,lushengduan03
    • linux设备驱动程序之时钟管理(2)----又见结构
    • AndroidStudio下使用 RecyclerView xml文件不显示预览条目并报错类似:NoClassDefFoundError 问题解决,studiorecyclerview
    • 关于 android canvas 的简单总结
    • TextView,iostextview
    • 电商常用的正则表达式,字符串,地址操作,电商正则表达式
    • Android 6.0 Phone"通话显示"查询流程

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

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