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);
}
}
}
分享到:
相关推荐
本文将深入探讨如何通过适配器(Adapter)和自定义布局来实现一个功能丰富的自定义ListView。 一、适配器(Adapter)的理解与应用 适配器是Android中连接数据源和UI控件的关键桥梁,它将数据转换成可以被ListView...
为了使ListView显示的数据更加丰富多样,我们通常需要自定义适配器(Adapter)。本文将深入探讨如何创建和使用ListView的自定义适配器,以及它的工作原理。 首先,我们要理解适配器在ListView中的角色。适配器是...
ListView的高效渲染主要依赖于适配器(Adapter)机制,而ListViewAdapter和ViewHolder是实现这一机制的关键部分。本压缩包“listview适配器 ListViewAdapter和ViewHolder代码.rar”提供了一个简单的使用示例,帮助...
本篇文章将详细讲解如何自定义ListView的适配器以及如何实现列表的增删功能。 **一、自定义适配器** 1. **适配器基础概念**:适配器是连接数据源和UI视图的桥梁,它负责将数据转化为ListView可以显示的视图。在...
接着,创建了一个名为`ListViewAdapter`的自定义Adapter,继承自`BaseAdapter`,并传入上下文和数据集作为构造函数参数。然后,通过`listView.setAdapter(listViewAdapter)`将Adapter绑定到ListView上。 在`getView...
5. 设置Adapter:最后,将自定义的Adapter传递给ListView,通过setAdapter()方法,使ListView开始使用我们自定义的适配器来展示数据。 在这个项目中,"自定义Adapter"文件很可能是实现了上述步骤的代码示例。通过...
为了实现更加灵活和丰富的界面展示,我们通常需要对ListView进行自定义,这涉及到自定义Adapter的使用。自定义Adapter允许我们根据需求定制ListView的每一项视图,以适应不同的数据结构和界面设计。 首先,我们需要...
本教程将深入讲解如何使用ListView,结合自定义适配器以及解决Out-Of-Memory(OOM)问题。 首先,`ListView`是一个可滚动的视图,它能够显示一行行的数据。它通过Adapter来获取数据并将其渲染为可视化的列表项。...
在实际应用中,为了满足各种界面设计需求,通常需要自定义ListView的Adapter。本示例将详细介绍如何自定义ListView的Adapter,以实现个性化的数据展示。 首先,我们需要理解Adapter的作用。Adapter是连接ListView和...
`ListView`的适配器(Adapter)是连接数据源和视图的关键,它负责将数据转化为可显示的视图项。"android之listview万能适配器"概念旨在创建一个通用、灵活的适配器,能够适应各种不同的数据结构和界面需求。以下将...
总的来说,Android中的自定义ListView涉及到数据源的管理、适配器的设计、视图的复用和事件监听等多个方面。熟练掌握这些知识对于开发具有交互性、功能丰富的Android应用至关重要。通过不断的实践和学习,开发者可以...
创建好自定义适配器后,将其设置到ListView上,使用`listView.setAdapter(adapter)`。 6. **标题和内容的展示**: 示例中的"标题一》》》》》内容一"和"标题二》》》》》内容二"可能表示每个列表项包含一个标题和...
自定义`ListView`主要包括两部分:自定义`Adapter`和自定义`ListView`的布局文件。 1. 自定义`Adapter`:`Adapter`是连接数据源与`ListView`的桥梁。你可以继承`BaseAdapter`、`ArrayAdapter`或`CursorAdapter`来...
在这个主题中,我们将深入探讨如何设计自定义ListView,包括创建适配器(Adapter)以及解决滑动冲突的问题。 首先,自定义ListView通常涉及到以下几个步骤: 1. **创建自定义视图(View)**:这通常是通过继承`...
`1.8 自定义ListView中的行`这个主题主要涉及如何根据应用需求调整ListView中每一行的显示样式,使其更加个性化和符合用户界面设计。以下将详细介绍这个过程,以及相关的知识点。 首先,自定义ListView的行通常涉及...
"Android ListView 万能适配器"是解决ListView数据绑定的一种高效、灵活的方法,它能够适应多种类型的数据,使得开发者无需为每种不同的数据类型创建单独的Adapter。在本项目中,我们探讨的是一个名为"baseAdapter-...
为了使ListView能够正确显示各种不同的数据,我们需要编写一个适配器(Adapter)。本文将深入探讨如何打造一个万能适配器,以实现更灵活的数据绑定和视图管理。 首先,我们要理解适配器的作用。适配器是连接数据源...
自定义ListView是为了满足更复杂的需求,比如添加特定的视图元素、实现特殊的功能或者优化性能。在这个例子中,我们关注的是“自定义含多选框的ListView”。 自定义ListView主要涉及以下几个方面: 1. **适配器...
适配器(Adapter)在ListView中扮演着桥梁的角色,将数据源与ListView的视图进行绑定,使得数据可以正确地显示在ListView的各个item上。本篇文章将深入探讨Android中的BaseAdapter,它是ListView适配器的基础实现,...
直接两个listView 布局文件,数据直接输入,获得 嵌套ListView 的适配效果