019Adapter初解
2016-02-21 12:04
309 查看
Adapter是什么?
adapter是帮助填充数据的中间桥梁,就是将各种数据以合适的形式显现到view中MVC是什么
适配器概念结构图
必须学会的适配器: ListAdapter,SinnerAdapter,BaseAdapter
BaseAdapter:抽象类,实际开发中我们会继承这个类并且重写相关方法,用得最多的一个Adapter!
ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字~
SimpleAdapter:同样具有良好扩展性的一个Adapter,可以自定义多种效果!
SimpleCursorAdapter:用于显示简单文本类型的listView,一般在数据库那里会用到,不过有点过时, 不推荐使用!
ArrayAdapter
方法1xml文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_marginTop="82dp" android:layout_toRightOf="@+id/textView1" > </ListView> </RelativeLayout>
import java.util.ArrayList; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class MainActivity extends Activity { ListView list1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String[] str = { "1", "2", "3" }; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, str);// 创建适配器,android.R.layout.simple_list_item_1适配器显示方式,str适配器显示资源 list1 = (ListView) findViewById(R.id.listView1);// 获取listview资源 list1.setAdapter(adapter);// 连接适配器 /* * 创建监听器 */ list1.setOnItemClickListener(new ItemClickListener()); } class ItemClickListener implements OnItemClickListener { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO 自动生成的方法存根 Toast.makeText(MainActivity.this, " 1", Toast.LENGTH_LONG).show(); } } }
方法2
1在values中建立arraylist.xml文件
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="listarray"> <item >1sssssss</item> <item >2sssssssss</item> <item >3sssssssssss</item> </string-array> </resources>
2 java代码
package com.example.androidtext001; import android.os.Bundle; import android.app.Activity; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { // ListView list1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayAdapter<CharSequence> adapter = ArrayAdapt 4000 er.createFromResource( MainActivity.this, R.array.listarray, android.R.layout.simple_list_item_1); ListView listview = (ListView) findViewById(R.id.listView1);//获取listview id listview.setAdapter(adapter); } }
SimpleAdapter
1准备3张图片放入drawable中
2编写列表布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <!-- 定义一个用于显示头像的ImageView --> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /> <!-- 定义一个竖直方向的LinearLayout,把呢称与说说的文本框设置出来 --> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1.1" /> </LinearLayout>
3编写主Activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout>
4 写java
package com.example.androidtext002; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.media.Image; import android.os.Bundle; import android.R.anim; import android.app.Activity; import android.view.Menu; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.SimpleAdapter; public class MActivity extends Activity { private String[] name = { "1", "2", "3", "4" }; private String[] say = { "1.1", "1.2", "1.3", "1.4" }; private int[] imageId = { R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity); /* * 创建ArrayList列表,使用for循环将数据加入到列表中 */ List<Map<String, Object>> listItem = new ArrayList<Map<String, Object>>(); for (int i = 0; i < name.length; i++) { Map<String, Object> showItem = new HashMap<String, Object>(); showItem.put("imageId", imageId[i]); showItem.put("name", name[i]); showItem.put("say", say[i]); listItem.add(showItem); } // 创建适配器 SimpleAdapter myAdapter = new SimpleAdapter(MActivity.this, listItem, R.layout.list_item, new String[] { "name", "say", "imageId" }, new int[] { R.id.textView1, R.id.textView2, R.id.imageView1 }); ListView listView = (ListView) findViewById(R.id.listView1); listView.setAdapter(myAdapter); } }
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 我是运营,我没有假期
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- 修复mysql数据库
- 浅析SQL数据操作语句
- SQLServer 数据导入导出的几种方法小结
- MySQL数据备份之mysqldump的使用详解
- C#实现窗体间传递数据实例
- 给你的数据库文件减肥
- Oracle数据更改后出错的解决方法
- Oracle数据库数据丢失恢复的几种方法总结
- C#将Sql数据保存到Excel文件中的方法
- C#实例代码之抽奖升级版可以经表格数据导入数据库,抽奖设置,补抽
- MFC实现在文件尾追加数据的方法
- 把excel表格里的数据导入sql数据库的两种方法
- 用文本作数据处理
- 桌面中心(一)创建数据库
- Zend的MVC机制使用分析(二)