`
寻梦者
  • 浏览: 637433 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ndroid listview组件之ArrayAdapter,SimpleAdapter

阅读更多

   ListView 是android开发中最常用的组件之一,它通过一个adapter来构建显示通常有三种adapter可以使用ArrayAdapter ,SimpleAdapter,CursorAdapter。CursorAdapter主要正对数据库使用,下面通过例子介绍ArrayAdapter ,SimpleAdapter的简单使用:
   1:ArrayAdapter 它接受一个数组或者List作为参数来构建。
      一下通过简单例子说明:
  创建Test 继承ListActivity 这里我们传入一个string数组

public class ListTest extends ListActivity {
    
/** Called when the activity is first created. */


    @Override
    
public void onCreate(Bundle savedInstanceState) {
        
super
.onCreate(savedInstanceState);
        String[] sw 
= new String[100
];
        
for (int i = 0; i < 100; i++
{
            sw[i] 
= "listtest_" +
 i;
        }

        ArrayAdapter
<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,sw);//使用系统已经实现好的xml文件simple_list_item_1
        setListAdapter(adapter);
    }

}

运行如图:

 从以上代码可以看不我们不需要加载我们自己的layout 而是用系统已经实现的layout很快速的实现了listview

第二种SimpleAdapter
 先看下我们例子的最终截图:
 

通过上图可以看出listview每行不仅仅是一个string 包括了很多项,图片,多项文字
我们通过构建list,并设置每项为一个map来实现:
代码:创建TestList类继承Activity

super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ArrayList
<HashMap<String, Object>> users = new ArrayList<HashMap<String, Object>>
();
        
for (int i = 0; i < 10; i++
{
            HashMap
<String, Object> user = new HashMap<String, Object>
();
            user.put(
"img"
, R.drawable.user);
            user.put(
"username""姓名(" + i+")"
);
            user.put(
"age", (20 + i) + ""
);
            users.add(user);
        }

        SimpleAdapter saImageItems 
= new SimpleAdapter(this,
                users,
// 数据来源

                R.layout.user,//每一个user xml 相当ListView的一个组件 
                new String[] "img""username""age" },
                
// 分别对应view 的id

                new int[] { R.id.img, R.id.name, R.id.age });
        
// 获取listview

        ((ListView) findViewById(R.id.users)).setAdapter(saImageItems);

下面是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:text="用户列表" android:gravity="center"
        android:layout_height
="wrap_content"
        android:layout_width
="fill_parent" android:background="#DAA520"
        android:textColor
="#000000">
    
</TextView>
    
<LinearLayout 
        android:layout_width
="wrap_content"

        android:layout_height
="wrap_content">
        
<TextView android:text="姓名" 
            android:gravity
="center" android:layout_width="160px"

            android:layout_height
="wrap_content" android:textStyle="bold"
            android:background
="#7CFC00">
        
</TextView>
        
<TextView android:text="年龄" 
            android:layout_width
="170px" android:gravity="center"

            android:layout_height
="wrap_content" android:textStyle="bold"
            android:background
="#F0E68C">
        
</TextView>
    
</LinearLayout>
<ListView android:layout_width="wrap_content" 
        android:layout_height
="wrap_content" android:id="@+id/users">

    
</ListView>
</LinearLayout>

之中listView前面的可以说是标题行,listview相当于用来显示数据的容器,里面每行是一个用户信息,而用户信息是样子呢?

 看看use.xml

<?xml version="1.0" encoding="utf-8"?>  
<
TableLayout    
         android:layout_width
="fill_parent"
    
         xmlns:android
="http://schemas.android.com/apk/res/android"
    
         android:layout_height
="wrap_content"
    
         
>
 
         
<TableRow >
 
         
<
ImageView    
               android:layout_width
="wrap_content"
    
               android:layout_height
="wrap_content"
   
               android:id
="@+id/img">
    
         
</ImageView>
  
         
<
TextView    
               android:layout_height
="wrap_content"
    
               android:layout_width
="150px"
    
               android:id
="@+id/name">
  
         
</TextView>
  
         
<
TextView    
               android:layout_height
="wrap_content"
   
               android:layout_width
="170px"
    
               android:id
="@+id/age">
  
         
</TextView>
 
         
</TableRow>
 
</TableLayout>  

也就是说每行包含了一个img 和2个文字信息
这个文件以参数的形式通过adapter在listview中显示。
也就是:
SimpleAdapter saImageItems = new SimpleAdapter(this,
                users,
// 数据来源
                R.layout.user,//每一个user xml 相当ListView的一个组件 
                new String[] "img""username""age" },

                
// 分别对应view 的id
                new int[] { R.id.img, R.id.name, R.id.age });

 

最后还有一点,就是当SimpleAdapter里面注册的list发生改变时,如果需要动态地让UI显示这些改变,就需要调用SimpleAdapter的notifyDataSetChanged()这个方法

 

使用技巧:

1. <android:transcriptMode="alwaysScroll">在位置文件中添加这段,可以让listView实现自动滚动的功能

 

分享到:
评论

相关推荐

    Android之ListView<3>ArrayAdapter,SimpleAdapter

    这篇博客“Android之ListView&lt;3&gt;ArrayAdapter,SimpleAdapter”主要探讨了两种常用的适配器:ArrayAdapter和SimpleAdapter,它们是连接数据源与ListView的关键组件。 ArrayAdapter是Android SDK内建的一种适配器,...

    android ListView及ArrayAdapter,SimpleCursorAdapter,SimpleAdapter用法示例

    本篇将详细介绍ListView与三种Adapter(ArrayAdapter、SimpleCursorAdapter、SimpleAdapter)的使用方法,并提供实例说明。 首先,ArrayAdapter是最基础的适配器,用于将数组中的数据绑定到ListView。它适用于简单...

    使用ArrayAdapter和SimpleAdapter

    ListView控件是最常用的控件之一,ListView的经常使用ArrayAdapter和SimpleAdapter来加载数据源。ArrayAdapter(数组适配器)用作展现简单的纯文字列表;SimpleAdapter(简单适配器)可以用来展现图文并茂的列表,...

    ArrayAdapter和simpleAdapter回顾

    ArrayAdapter和simpleAdapter的回顾,好长时间都没有写android了,今天出来溜溜,这个写的是最初的功能。 就是listview。simpleAdapter是左图片右文本、 这个适合初学者玩下。

    Android中ListView常用的两种适配器ArrayAdapter和SimpleAdapter使用

    在Android开发中,ListView是用于显示可滚动列表的视图组件,经常用于展示大量数据的场景。ArrayAdapter和SimpleAdapter是两种常用的ListView适配器,它们帮助我们将数据绑定到ListView的各个视图项上。本篇文章将...

    android ListView简单实例

    在Android开发中,ListView是一个非常重要的组件,它用于展示大量数据列表,用户可以通过滚动查看所有条目。本教程将深入讲解如何使用ArrayAdapter和SimpleAdapter这两种方式来创建一个简单的ListView实例。 首先,...

    ListView 与ArrayAdapter,BaseAdapter,SimpleAdapter,SimpleCursorAdapter配合使用实例。

    本篇将详细讲解ListView与ArrayAdapter、BaseAdapter、SimpleAdapter以及SimpleCursorAdapter的配合使用。 1. **ArrayAdapter** ArrayAdapter是最基础的适配器,它将Java对象数组或ArrayList与ListView进行关联。...

    Android 根据EditText搜索框 ListView动态显示数据

    在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。在许多应用中,我们希望用户能够通过输入关键词在ListView中进行搜索,实现这一功能的关键是结合EditText和ListView。本教程将详细介绍如何...

    ArrayAdapter和SimpleAdapter使用

    在Android开发中,数据绑定到UI控件是一个常见的任务,ArrayAdapter和SimpleAdapter是两种常用的适配器,用于将数据集映射到ListView等视图组件。本文将深入探讨这两种适配器的使用方法和它们之间的区别。 首先,...

    Android ListView实例源码

    在Android开发中,ListView是一个非常重要的组件,它用于展示大量数据列表,比如联系人列表、邮件列表等。这个实例源码“Test_Golf1”很可能包含了一个完整的ListView应用示例,帮助开发者理解如何在Android中有效地...

    Android ListView长按删除

    在Android开发中,ListView是一种常用的组件,用于展示大量可滚动的数据。它允许用户通过垂直滚动查看多行数据项。在许多应用中,我们可能需要添加一些交互性功能,比如长按删除,以增强用户体验。本篇文章将详细...

    安卓Android源码——(列表之SimpleAdapter适配).zip

    这个压缩包文件“安卓Android源码——(列表之SimpleAdapter适配).zip”显然是提供了一个关于如何使用`SimpleAdapter`进行数据展示的实例代码。下面我们将深入探讨`SimpleAdapter`的工作原理和使用方法。 1. **...

    Android listview 逐行显示效果

    在Android中,常用的适配器有ArrayAdapter、SimpleAdapter等。这里假设你已经有了一个数据列表,可以创建一个ArrayAdapter: ```java ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter(this, android.R.layout....

    Android源码:ListView组件应用演示代码

    Android源码:ListView组件应用演示代码,layout的xml文件名需要全部小写。  ActivityList1:   1.初步介绍ListView这个组件。   2.初步介绍ArrayAdapter。   # simple_list_item_single_choice   # ...

    Android中ListView的用法

    总结,Android中的ListView是一个强大且常用的组件,配合ArrayAdapter和SimpleAdapter可以轻松处理数据展示。在实际开发中,我们应根据需求选择合适的适配器,并注意性能优化,以提供流畅的用户体验。

    android Listview demo

    Android提供了多种内置Adapter,如ArrayAdapter、SimpleAdapter等,可以根据不同需求选择使用。在"ListApp"中,我们可能使用ArrayAdapter来绑定字符串数组到ListView。 三、布局文件 ListView的每个可见项都有一个...

    android中一个简单的LIstView用法例子

    在Android开发中,ListView是一个非常重要的组件,它用于展示大量数据列表,通常用于实现滚动效果。这个简单的ListView用法例子将帮助初学者理解和掌握如何在实际项目中运用ListView。 首先,我们来了解一下...

    Android listview与adapter用法

    在Android开发中,ListView是展示大量数据的一种常见方式,而Adapter则是实现ListView数据绑定的关键组件。本篇文章将详细探讨Android中的Adapter用法及其在ListView中的应用。 1. **Adapter的概念** - `Adapter`...

Global site tag (gtag.js) - Google Analytics