自定义ListView adapter适配器
转自:http://hilary3113.iteye.com/blog/998352
listview加载adapter过程是这样的.
1 先判断adapter 有多少数据项,根据这个数据确定有多少item.
2 确定每个item里加载哪个View.
3 把View里加载要显示的数据.
main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical" android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <TextView android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:text="123424312423142134" />
- <ListView android:id="@+id/list" android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
- </LinearLayout>
listView布局文件:item.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal" android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <TextView android:id="@+id/name" android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
- <TextView android:id="@+id/sex" android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
- <TextView android:id="@+id/age" android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
- </LinearLayout>
定义一个类,用来传值 People.java
- public class People {
- public String name;
- public String sex;
- public String age;
- }
定义适配器 MyAdapter.java
- package com.action;
- import java.util.ArrayList;
- 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.TextView;
- /**
- *@Author: hilary
- *@Date: 2011-4-11
- **/
- public class MyAdapter extends BaseAdapter {
- private List<People> list = new ArrayList<People>();
- // private People people = new People();
- private Context context;
- public MyAdapter(Context context){
- this.context = context;
- }
- //适配器根据getCount()函数来确定要加载多少项
- @Override
- public int getCount() {
- return list.size();
- }
- @Override
- public Object getItem(int paramInt) {
- return list.get(paramInt);
- }
- @Override
- public long getItemId(int paramInt) {
- return paramInt;
- }
- /*
- * 当列表里的每一项显示到界面时,都会调用这个方法一次,并返回一个view 所以方法里面尽量要简单,不要做没必要的动作(non-Javadoc)
- * 我这里为了大家好理解,没有做优化
- */
- @Override
- public View getView(int paramInt, View paramView, ViewGroup paramViewGroup) {
- //得到列表样式的view对象
- paramView=LayoutInflater.from(context).inflate(R.layout.item, null);
- //通过view来得到Item中的每个控件的操作权
- TextView name = (TextView)paramView.findViewById(R.id.name);
- TextView sex = (TextView)paramView.findViewById(R.id.sex);
- TextView age = (TextView)paramView.findViewById(R.id.age);
- //获得list里面的第paramInt个对象,并把值赋给每个控件
- People people = list.get(paramInt);
- name.setText(people.name);
- sex.setText(people.sex);
- age.setText(people.age);
- //把一项返回,加载这个View
- return paramView;
- }
- public void addList(People people){
- list.add(people);
- }
- }
主类
- package com.action;
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.ListView;
- public class Tab extends Activity {
- MyAdapter adapter ;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- System.out.println("*********Tab");
- ListView listView =(ListView) findViewById(R.id.list);
- adapter = new MyAdapter(this);
- setPeople();
- listView.setAdapter(adapter);
- }
- public void setPeople(){
- People people;
- for(int i=1;i<5;i++){
- people = new People();
- people.name="张三";
- people.sex = "男";
- people.age ="22";
- adapter.addList(people);
- }
- }
- }
自定义ListView adapter适配器的更多相关文章
- 自定义ListView适配器Adapter引用布局文件的情况下实现点击列表项时背景颜色为灰色
listview控件设置适配器的时候,如果使用自定义的adapter,比如MyArrayAdapter extends ArrayAdapter<String> 如果listitem布局文 ...
- 无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)
1.listview入门,自定义的数据适配器 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/and ...
- Android中ListView 控件与 Adapter 适配器如何使用?
一个android应用的成功与否,其界面设计至关重要.为了更好的进行android ui设计,我们常常需要借助一些控件和适配器.今天小编在android培训网站上搜罗了一些有关ListView 控件与 ...
- android之ListView,详细介绍实现步骤,举例,自定义listview适配器
android之ListView,详细介绍实现步骤,举例,自定义listview适配器 本文来源于www.ifyao.com禁止转载!www.ifyao.com android中如何使用listVie ...
- android listview使用自定义的adapter没有了OnItemClickListener事件解决办法
在使用listview的时用使用自定义的adapter的时候,如果你的item布局中包含有Button,Checkable继承来的所有控件,那么你将无法获取listview的onItemClickLi ...
- 自定义ListView适配器
继承BaseAdapter类 覆盖以下4个方法: @Override public int getCount() { return users.size(); } @Override public O ...
- Android adapter适配器的学习
学习Android有一点时间,说说自己的学习感悟. 首先呢,先说说适配器的作用,顾名思义,它就是把数据定义好一定的规则,使得我们可以用到ListView GridView等上面 所以说这玩意,还是得好 ...
- Android 自定义ListView
本文讲实现一个自定义列表的Android程序,程序将实现一个使用自定义的适配器(Adapter)绑定 数据,通过contextView.setTag绑定数据有按钮的ListView. 系统显示列表(L ...
- Android之listview && adapter
今天我们讲的也是非常重要的一个控件listview-最常用也是最难的 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView ...
随机推荐
- 一张图解AlphaGo原理及弱点
声明:本文转载自(微信公众号:CKDD),作者郑宇 张钧波,仅作学习收录之用,不做商业目的. 近期AlphaGo在人机围棋比赛中连胜李世石3局,体现了人工智能在围棋领域的突破,作为人工智能领域的工作者 ...
- C++的一大误区——深入解释直接初始化与复制初始化的区别
转自:http://blog.csdn.net/ljianhui/article/details/9245661 不久前,在博客上发表了一篇文章——提高程序运行效率的10个简单方法,对于其中最后一 ...
- 号外,号外 -几乎所有的binary search和mergesort都有错
号外,号外 -几乎所有的binary search和mergesort都有错 这是Joshua Bloch(Effective Java的作者)在google blog上发的帖子.在说这个帖子之前,不 ...
- plan-6.17周末
喷完了自己,浑身舒爽. 搞个计划,最近要学东西,以提交博客为准,提交了才认为ok. 1.python的新书<<Fluent python>>不错,老的python资料已经满足不 ...
- PyQt5点击按钮产生新窗体
import sys from PyQt5.QtWidgets import QApplication,QWidget from form1 import Ui_Form1 from form2 im ...
- 二十二 使用__slots__
正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.先定义class: class Student(object): pa ...
- 基于ZooKeeper实现——分布式锁与实现
引言 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提 ...
- python网页下载
python 2.7版本下可以运行 import urllib2 def getHtml(url): response = None requset = None headers = {'User-A ...
- [hdu3685]Rotational Painting 凸包 重心
大致题意: 给出一个多边形,问你有多少种放法可以使得多边形稳定得立在平面上. 先对多边形求重心,在求凸包,枚举凸包的边,如果重心没有在边的范围内,则不行 判断是否在范围内可用点积来判断 #includ ...
- CPPUNIT_TEST
(1) CPPUNIT_ASSERT(condition):判断condition的值是否为真,如果为假则生成错误信息. (2)CPPUNIT_ASSERT_MESSAGE(message, cond ...