`
gryphone
  • 浏览: 433652 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Adapter:SimpleAdapter SimpleCursorAdapter ArrayAdapter

阅读更多

AdapterView: ListView GridView Gallery Spinner

Adapter: SimpleAdapter SimpleCursorAdapter ArrayAdapter

 

[功能]

* AdapterView: 由界面决定用哪一种

* Adapter : 由数据形式决定用哪一种

 

AdapterView 没什么可说的 界面是人各有志 看自己的需要吧 所以今天主要介绍一下 Adapter 的使用

 

 

[前提]

因为与界面无关 所以为方便 界面统一使用 ListView 且:

ListView  lv = (ListView) findViewById(R.id.list);

 

<?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"
    >
<ListView  
	android:id="@+id/list"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    />
</LinearLayout>

 

* 使用所有Adapter

lv.setAdapter(adapter);

 

 

以下逐一举例:

 

[SimpleAdapter ]

 

* source code:

public SimpleAdapter(Context context, List<? extends Map<String, ?>> data,
            int resource, String[] from, int[] to)

 

 

* sample

public final static String COLUMN_1 = "name";
public final static String COLUMN_2 = "phone";

List<Map<String,String>> display;

String[] from = {COLUMN_1,COLUMN_2};
        int[] to = {android.R.id.text1,android.R.id.text2};
        SimpleAdapter adapter = new SimpleAdapter(this, display,android.R.layout.simple_list_item_2, from,to);

 

 

* 补充:

1. 数据源 display

1. 定义: List<Map<String,String>> display;


2. 初始化: display = new ArrayList<Map<String,String>>();


3. 使用: display = addValue();

public List<Map<String,String>> addValue(){
    	List<Map<String,String>> value = new ArrayList<Map<String,String>>();
    	
    	Map<String,String> item1 = new HashMap<String,String>();
    	item1.put(COLUMN_1, "griffin");
    	item1.put(COLUMN_2, "132123");
    	value.add(item1);
    	
    	Map<String,String> item2 = new HashMap<String,String>();
    	item2.put(COLUMN_1, "eoe.android");
    	item2.put(COLUMN_2, "132");
    	value.add(item2);
    	
    	Map<String,String> item3 = new HashMap<String,String>();
    	item3.put(COLUMN_1, "gryphone");
    	item3.put(COLUMN_2, "132342");
    	value.add(item3);
    	
    	return value;
    }

 

 

 

 

[SimpleCursorAdapter]

 

* source code

public SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to)

 

* sample

Cursor c = getContentResolver().query(People.CONTENT_URI, 
                null, null, null, null);
        
        String[] from ={People.NAME};
        int[] to = {android.R.id.text1};
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
                android.R.layout.simple_list_item_1,c, from,to); 

 

 

 

[ArrayAdapter]

 

* source code

public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)

 

 

* sample

String[] value = {
			"JAN","FEB","MAR","APR",
            "MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC "
	};

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,value)

 

 

 

 

done!

分享到:
评论
6 楼 gryphone 2010-05-14  
carywei 写道
gryphone 写道
yanglinglong1 写道
使用了 SimpleAdapter的时候,如何来判断响应呢??比如用ArrayAdapter的时候,再响应时间中,可以用下面这种方式

public void onItemClick(AdapterView<?> prant, View view, int position,
long id) {

prant.getItemAtPosition(position).toString().equals("比较内容");
}

用SimpleAdapter就不可以了,你们再用SimpleAdapter的时候是如何来响应事件的呢

事实上 各种Adapter 只是负责绑定数据工作 至于你说的监听相应 不应交给Adapter负责 而应该有具体AdapterView来完成 即:ListView Gallery GridView

你能在说明白怎样得到每item中的子view吗,比如子view中有一个图片,我怎样利用传过来的view
在单击的时候改变呢

问的好 看这篇博客:
http://griffinshi.iteye.com/blog/605335#comments
5 楼 carywei 2010-05-13  
gryphone 写道
yanglinglong1 写道
使用了 SimpleAdapter的时候,如何来判断响应呢??比如用ArrayAdapter的时候,再响应时间中,可以用下面这种方式

public void onItemClick(AdapterView<?> prant, View view, int position,
long id) {

prant.getItemAtPosition(position).toString().equals("比较内容");
}

用SimpleAdapter就不可以了,你们再用SimpleAdapter的时候是如何来响应事件的呢

事实上 各种Adapter 只是负责绑定数据工作 至于你说的监听相应 不应交给Adapter负责 而应该有具体AdapterView来完成 即:ListView Gallery GridView

你能在说明白怎样得到每item中的子view吗,比如子view中有一个图片,我怎样利用传过来的view
在单击的时候改变呢
4 楼 gryphone 2010-04-28  
yanglinglong1 写道
使用了 SimpleAdapter的时候,如何来判断响应呢??比如用ArrayAdapter的时候,再响应时间中,可以用下面这种方式

public void onItemClick(AdapterView<?> prant, View view, int position,
long id) {

prant.getItemAtPosition(position).toString().equals("比较内容");
}

用SimpleAdapter就不可以了,你们再用SimpleAdapter的时候是如何来响应事件的呢

事实上 各种Adapter 只是负责绑定数据工作 至于你说的监听相应 不应交给Adapter负责 而应该有具体AdapterView来完成 即:ListView Gallery GridView
3 楼 yanglinglong1 2010-04-28  
使用了 SimpleAdapter的时候,如何来判断响应呢??比如用ArrayAdapter的时候,再响应时间中,可以用下面这种方式

public void onItemClick(AdapterView<?> prant, View view, int position,
long id) {

prant.getItemAtPosition(position).toString().equals("比较内容");
}

用SimpleAdapter就不可以了,你们再用SimpleAdapter的时候是如何来响应事件的呢
2 楼 gryphone 2010-02-10  
wafj1984 写道
应该说出simpleAdapter,arrayAdapter,CursorAdapter的应用时区别吧!!!和优化问题


所有3者压根就没区别 只是因为数据源的不同的缘故 比如:

1. String[]: ArrayAdapter
2. List<Map<String,?>>: SimpleAdapter
3. 数据库Cursor: SimpleCursorAdapter

至于优化 不懂你的意思 请细说~~~
1 楼 wafj1984 2010-02-10  
应该说出simpleAdapter,arrayAdapter,CursorAdapter的应用时区别吧!!!和优化问题

相关推荐

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

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

    ListView控件

    讲述四种适配器:ArrayAdapter SimpleAdapter SimpleCursorAdapter 自定义Adapter

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

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

    浅析Android之Adapter用法总结

    在Android中,有多种预定义的Adapter类供开发者选择,包括BaseAdapter、SimpleAdapter、ArrayAdapter和SimpleCursorAdapter等。BaseAdapter是一个抽象类,提供了最基本的框架,开发者可以根据需求重写必要的方法以...

    ListView的Adapter使用 之 初学ArrayAdapter String

    SimpleAdapter适用于将Map数据集映射到列表项,而CursorAdapter和SimpleCursorAdapter则用于绑定SQLite数据库查询结果到ListView。 当需要自定义列表项的布局时,可以继承BaseAdapter并重写其方法,如`getView()`,...

    Android listview与adapter用法

    - 在Android中,Adapter通常实现了一个或多个特定接口,例如BaseAdapter、SimpleAdapter、ArrayAdapter和SimpleCursorAdapter等。这些Adapter提供了不同的功能和灵活性,以适应不同场景的需求。 2. **Adapter的...

    android adapter 开发总结

    无论是ArrayAdapter的简单应用,还是SimpleAdapter和SimpleCursorAdapter的灵活性,都是开发者在构建列表型界面时的重要工具。在实际项目中,根据具体需求选择合适的Adapter类型,或创建自定义Adapter,都是实现高效...

    android(Adapter)适配器用法总结

    Adapter 的种类有很多,常用的有 BaseAdapter,SimpleAdapter,ArrayAdapter,SimpleCursorAdapter 等。每种 Adapter 都有其特点和应用场景。 BaseAdapter 是一个抽象类,继承它需要实现较多的方法,所以也就具有较...

    adapter.doc

    在这个系统中,我们通常会遇到几种不同类型的Adapter,包括BaseAdapter、SimpleAdapter、ArrayAdapter以及SimpleCursorAdapter。下面我们将深入探讨这些Adapter的特性和用法。 首先,BaseAdapter是一个抽象类,它是...

    使用三种Adapter构建ListView

    本篇将详细讲解如何使用三种不同的Adapter来构建ListView,包括ArrayAdapter、SimpleAdapter和CursorAdapter。 首先,ArrayAdapter是最基础的Adapter,适用于简单的数据结构,如数组或ArrayList。使用ArrayAdapter...

    Android之Adapter用法总结

    ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, strs); // 设置 ListView 的适配器 setListAdapter(adapter); } } ``` 在这个例子中,`...

    Android应用开发-Adapter的使用.pptx

    2. **ArrayAdapter**:ArrayAdapter是最简单的Adapter实现,它支持泛型,可以直接绑定到一个数组或列表上,主要用于显示单一类型的数据,例如一行文字。ArrayAdapter自动处理数据到TextView的转换,非常适合简单的...

    Android adapter详解

    适配器也不仅限于ArrayAdapter,还可以是SimpleAdapter、SimpleCursorAdapter等。 当需要在界面上展示更加丰富的数据时,比如同时显示图片和文字,可以使用SimpleAdapter。SimpleAdapter相比ArrayAdapter提供了更多...

    Android_Adapter 讲解

    1. ArrayAdapter:这是最基础的Adapter实现,适用于由数组支持的ListView。它可以管理任意类型的对象数组,并默认假设每个对象可以转化为一个TextView的文本。如果你想自定义布局,可以重写`getView()`方法。 2. ...

    androidListView详解.pdf

    - Android提供了几种预定义的适配器,如ArrayAdapter、SimpleAdapter和SimpleCursorAdapter。 - ArrayAdapter是最基础的适配器,适用于展示单一类型的文本数据。 - SimpleAdapter具有更好的扩展性,允许自定义...

    Android 常用适配器总结

    1. ArrayAdapter:是最简单的适配器, 只能展示一行字。它通常用于展示字符串数组。 2. SimpleAdapter:具有最好的扩充性,可以自定义出各种效果。它可以用于展示复杂的数据结构,如 HashMap 等。 3. ...

    AndroidAdapter的介绍[参照].pdf

    - **类型**:在Android中,有多种预定义的Adapter实现,包括BaseAdapter、SimpleAdapter、ArrayAdapter和SimpleCursorAdapter等。 - **BaseAdapter**:这是一个抽象类,提供了基本的框架,需要开发者实现一些核心...

Global site tag (gtag.js) - Google Analytics