ArrayAdapter(数组适配器)与SimpleAdapter(简单适配器)
2015-07-30 14:27
399 查看
ArrayAdapter数组适配器常用语搭建简单的数组列表等布局,SimpleAdapter简单适配器的布局文件可以自己定义。
自定义的布局文件Item
![](http://img.blog.csdn.net/20150730142403725?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
简单适配器
![](http://img.blog.csdn.net/20150730142620474?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
添加OnItemClickListener监听器操作
![](http://img.blog.csdn.net/20150730142439355?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
添加OnScrollListener操作
public class MainActivity extends ActionBarActivity implements OnItemClickListener,OnScrollListener{ ListView listView1; List<Map<String,Object>> datalist; ArrayAdapter<String> Adapter; SimpleAdapter Adapter2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView1=(ListView) findViewById(R.id.listView1); //创建数组适配器的数据源 //创建简单适配器数据源 String list[]={"第一行","第二行","第三行","第四行"}; datalist=new ArrayList<Map<String,Object>>(); //创建数组适配器 //创建简单适配器 /* * 数组适配器里的三个参数分别是上下文,简单布局文件,数据源。 * 简单适配器参数分别为上下文,数据源(一般都是泛型集合),自己定义的布局文件,for是数据源键值对的名称,to是与for相对应的ID地址 */ Adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list); Adapter2=new SimpleAdapter(this, getdata(), R.layout.item, new String[]{"pic","text"}, new int[]{R.id.img,R.id.tv}); //为listView1绑定适配器 //listView1.setAdapter(Adapter); listView1.setAdapter(Adapter2); //注册监听器 listView1.setOnItemClickListener(this); listView1.setOnScrollListener(this); } //为简单适配器数据源添加内容 private List<Map<String,Object>> getdata() { for(int i=0;i<15;i++) { Map<String,Object> map=new HashMap<String,Object>(); map.put("pic", R.drawable.ic_launcher); map.put("text", "第"+i+"行"); datalist.add(map); } return datalist; } @Override public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void onScrollStateChanged(AbsListView arg0, int ScrollState) { // TODO Auto-generated method stub //ScrollState监测下拉状态 switch(ScrollState) { case SCROLL_STATE_FLING://下拉形成惯性继续滑动 //为视图增加一个条目 Map<String,Object> map=new HashMap<String,Object>(); map.put("pic", R.drawable.ic_launcher); map.put("text", "新增条目"); datalist.add(map); //刷新视图 Adapter2.notifyDataSetChanged(); break; case SCROLL_STATE_IDLE://视图已经停止滑动 break; case SCROLL_STATE_TOUCH_SCROLL://下拉中,手指没离开屏幕 break; } } @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { // TODO Auto-generated method stub //获取点击项内容 String text=listView1.getItemAtPosition(position)+""; Toast.makeText(MainActivity.this,"position:"+position+"text:"+text,Toast.LENGTH_SHORT).show(); } }
自定义的布局文件Item
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/img" android:src="@drawable/ic_launcher"/> <TextView android:id="@+id/tv" android:text="nihao" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>数组适配器的视图
简单适配器
添加OnItemClickListener监听器操作
添加OnScrollListener操作
相关文章推荐
- synchronized关键字使用方法
- LVS+keepalived
- 隐藏导航栏时添加在self.view上的Tableview位置产生20个单位的误差
- XML序列化与反序列化
- XCode 6.4 Alcatraz 安装的插件不可用
- shell中cut用法
- C++ 图片类型(所有类型)最简单的复制黏贴实现
- win10控制面板在哪?win10正式版控制面板更新打开方法
- shell脚本进行数据库操作
- android 多个动画特效一起用
- ACdream 1125 ACfun
- 如何实现android蓝牙开发 自动配对连接,并不弹出提示框
- Mysql之入门命令
- OpenSSL::SSL::SSLError: hostname was not match with the server certificate
- 安全测试 Appscan
- CocoaChina 第四个测试
- 如何确认底部的条件及操作原则
- JS如何实现文本框随文本的长度而增长
- OC中copy的使用
- 十年前的十个网站