`
hilary3113
  • 浏览: 265769 次
  • 性别: Icon_minigender_1
  • 来自: 邯郸
社区版块
存档分类
最新评论

自定义ListView adapter适配器

阅读更多

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)的理解与应用 适配器是Android中连接数据源和UI控件的关键桥梁,它将数据转换成可以被ListView...

    ListView的自定义适配器Adapter

    为了使ListView显示的数据更加丰富多样,我们通常需要自定义适配器(Adapter)。本文将深入探讨如何创建和使用ListView的自定义适配器,以及它的工作原理。 首先,我们要理解适配器在ListView中的角色。适配器是...

    listview适配器 ListViewAdapter和ViewHolder代码.rar

    ListView的高效渲染主要依赖于适配器(Adapter)机制,而ListViewAdapter和ViewHolder是实现这一机制的关键部分。本压缩包“listview适配器 ListViewAdapter和ViewHolder代码.rar”提供了一个简单的使用示例,帮助...

    自定义listView适配器和增删

    本篇文章将详细讲解如何自定义ListView的适配器以及如何实现列表的增删功能。 **一、自定义适配器** 1. **适配器基础概念**:适配器是连接数据源和UI视图的桥梁,它负责将数据转化为ListView可以显示的视图。在...

    Android之自定义Adapter的ListView

    接着,创建了一个名为`ListViewAdapter`的自定义Adapter,继承自`BaseAdapter`,并传入上下文和数据集作为构造函数参数。然后,通过`listView.setAdapter(listViewAdapter)`将Adapter绑定到ListView上。 在`getView...

    Android自定义Adapter适配器

    5. 设置Adapter:最后,将自定义的Adapter传递给ListView,通过setAdapter()方法,使ListView开始使用我们自定义的适配器来展示数据。 在这个项目中,"自定义Adapter"文件很可能是实现了上述步骤的代码示例。通过...

    Android自定义adapter的listview

    为了实现更加灵活和丰富的界面展示,我们通常需要对ListView进行自定义,这涉及到自定义Adapter的使用。自定义Adapter允许我们根据需求定制ListView的每一项视图,以适应不同的数据结构和界面设计。 首先,我们需要...

    Android ListView控件的使用(自定义适配器 + ListView + 解决OOM )

    本教程将深入讲解如何使用ListView,结合自定义适配器以及解决Out-Of-Memory(OOM)问题。 首先,`ListView`是一个可滚动的视图,它能够显示一行行的数据。它通过Adapter来获取数据并将其渲染为可视化的列表项。...

    listview 自定义adapter的例子demo

    在实际应用中,为了满足各种界面设计需求,通常需要自定义ListView的Adapter。本示例将详细介绍如何自定义ListView的Adapter,以实现个性化的数据展示。 首先,我们需要理解Adapter的作用。Adapter是连接ListView和...

    android之listview万能适配器

    `ListView`的适配器(Adapter)是连接数据源和视图的关键,它负责将数据转化为可显示的视图项。"android之listview万能适配器"概念旨在创建一个通用、灵活的适配器,能够适应各种不同的数据结构和界面需求。以下将...

    Android中的自定义ListView

    总的来说,Android中的自定义ListView涉及到数据源的管理、适配器的设计、视图的复用和事件监听等多个方面。熟练掌握这些知识对于开发具有交互性、功能丰富的Android应用至关重要。通过不断的实践和学习,开发者可以...

    listView之自定义适配器Demo

    创建好自定义适配器后,将其设置到ListView上,使用`listView.setAdapter(adapter)`。 6. **标题和内容的展示**: 示例中的"标题一》》》》》内容一"和"标题二》》》》》内容二"可能表示每个列表项包含一个标题和...

    TabHost中填充自定义ListView

    自定义`ListView`主要包括两部分:自定义`Adapter`和自定义`ListView`的布局文件。 1. 自定义`Adapter`:`Adapter`是连接数据源与`ListView`的桥梁。你可以继承`BaseAdapter`、`ArrayAdapter`或`CursorAdapter`来...

    自定义listview

    在这个主题中,我们将深入探讨如何设计自定义ListView,包括创建适配器(Adapter)以及解决滑动冲突的问题。 首先,自定义ListView通常涉及到以下几个步骤: 1. **创建自定义视图(View)**:这通常是通过继承`...

    1.8 自定义ListView中的行

    `1.8 自定义ListView中的行`这个主题主要涉及如何根据应用需求调整ListView中每一行的显示样式,使其更加个性化和符合用户界面设计。以下将详细介绍这个过程,以及相关的知识点。 首先,自定义ListView的行通常涉及...

    Android ListView 万能适配器

    "Android ListView 万能适配器"是解决ListView数据绑定的一种高效、灵活的方法,它能够适应多种类型的数据,使得开发者无需为每种不同的数据类型创建单独的Adapter。在本项目中,我们探讨的是一个名为"baseAdapter-...

    Android打造listview万能适配器

    为了使ListView能够正确显示各种不同的数据,我们需要编写一个适配器(Adapter)。本文将深入探讨如何打造一个万能适配器,以实现更灵活的数据绑定和视图管理。 首先,我们要理解适配器的作用。适配器是连接数据源...

    自定义ListView

    自定义ListView是为了满足更复杂的需求,比如添加特定的视图元素、实现特殊的功能或者优化性能。在这个例子中,我们关注的是“自定义含多选框的ListView”。 自定义ListView主要涉及以下几个方面: 1. **适配器...

    android listview常用适配器

    适配器(Adapter)在ListView中扮演着桥梁的角色,将数据源与ListView的视图进行绑定,使得数据可以正确地显示在ListView的各个item上。本篇文章将深入探讨Android中的BaseAdapter,它是ListView适配器的基础实现,...

    listView内嵌套listView的专用 适配器

    直接两个listView 布局文件,数据直接输入,获得 嵌套ListView 的适配效果

Global site tag (gtag.js) - Google Analytics