android--ListView(控件+二种适配器+监听事件)
来源:互联网 发布:小米手机数据迁移华为 编辑:程序博客网 时间:2024/05/22 11:30
适配器就是大量数据源显示到视图上
适配器分为简单适配器和数组适配器
数组适配器:先在布局文件新建一个ListVi控件
1.新建一个数组适配器 arrAdapter=new ArrAdapter<String>(this,android.layout.simple_list_item_1,string)//string[] string={""""""}
2.新建一个listview,并把它给初始化
3.listview启动适配器List.setAdpter(simpleAdapter);
简单适配器
1. simpleAdapter=new SimpleAdapter(this,getdata(),R.layout.item, new String[]{"pic","text"},new int[]{R.id.pic,R.id.text});
(1)getdata()得到数据源的方法listdata是有许多个map组成,每一个map都会对应ListView列表中的一行,map由键值对组成,
(2)R.layout.item 布局文件ID就是你构建的一个个列表
(3)new String[]{"pic","text"} map的键名,就是你要创建map,必须构建键值对。
(4)new int[]{R.id.pic,R.id.text} 你布局时构建的控件,要和键值对绑定。
2.构建数据源 private List<Map<String,Object>> datalist;
datalist=new ArrayList<Map<String, Object>>();
3.构建map
在得到数据源发法里面定义map,构建map里元素具体的数值
把自己构建的map加到数据源里
Map<String,Object> map= new HashMap<String, Object>();
datalist.add(map);
列表监听属于接口监听
为了响应某个动作(手指滑动)
OnItemClickListener:
可以处理视图中单个条目的点击事件;
OnScrollListener:
监听滚动变化,可以用于视图在滚动中加载数据
activity_main
item.xlm
适配器分为简单适配器和数组适配器
数组适配器:先在布局文件新建一个ListVi控件
1.新建一个数组适配器 arrAdapter=new ArrAdapter<String>(this,android.layout.simple_list_item_1,string)//string[] string={""""""}
2.新建一个listview,并把它给初始化
3.listview启动适配器List.setAdpter(simpleAdapter);
简单适配器
1. simpleAdapter=new SimpleAdapter(this,getdata(),R.layout.item, new String[]{"pic","text"},new int[]{R.id.pic,R.id.text});
(1)getdata()得到数据源的方法listdata是有许多个map组成,每一个map都会对应ListView列表中的一行,map由键值对组成,
(2)R.layout.item 布局文件ID就是你构建的一个个列表
(3)new String[]{"pic","text"} map的键名,就是你要创建map,必须构建键值对。
(4)new int[]{R.id.pic,R.id.text} 你布局时构建的控件,要和键值对绑定。
2.构建数据源 private List<Map<String,Object>> datalist;
datalist=new ArrayList<Map<String, Object>>();
3.构建map
在得到数据源发法里面定义map,构建map里元素具体的数值
把自己构建的map加到数据源里
Map<String,Object> map= new HashMap<String, Object>();
datalist.add(map);
列表监听属于接口监听
为了响应某个动作(手指滑动)
OnItemClickListener:
可以处理视图中单个条目的点击事件;
OnScrollListener:
监听滚动变化,可以用于视图在滚动中加载数据
监听器是程序和用户交互的桥梁
MainActivity
package com.example.wuzuo.listview;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.AbsListView;import android.widget.Adapter;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;import java.util.AbstractList;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Objects;public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener,AbsListView.OnScrollListener{ private ListView listView; private SimpleAdapter simpleAdapter; private ArrayAdapter<String> arrayAdapter; private List<Map<String,Object>> datalist; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView= (ListView) findViewById(R.id.listView1); String[] strings={"赛客网","慕克网","网易云课堂"}; datalist=new ArrayList<Map<String, Object>>(); arrayAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,strings); simpleAdapter=new SimpleAdapter(this,getdata(),R.layout.item, new String[]{"pic","text"},new int[]{R.id.pic,R.id.text}); listView.setAdapter(simpleAdapter); listView.setOnItemClickListener(this); listView.setOnScrollListener(this); }private List<Map<String,Object>> getdata(){ for (int i=0;i<20;i++) { Map<String,Object> map= new HashMap<String, Object>(); map.put("pic",R.mipmap.ic_launcher); map.put("text","慕克网"+i); datalist.add(map); } return datalist;} @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String text= listView.getItemIdAtPosition(position)+""; Toast.makeText(this,"postion= "+position+"text= "+text,Toast.LENGTH_LONG).show(); } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { switch (scrollState) { case SCROLL_STATE_FLING: Log.i("Main","手指离开了,可是视图继续滑动"); Map<String,Object> map=new HashMap<String, Object>(); map.put("pic",R.mipmap.ic_launcher); map.put("text","增加项"); datalist.add(map); simpleAdapter.notifyDataSetChanged(); break; case SCROLL_STATE_IDLE: Log.i("Main","视图停止滑动"); break; case SCROLL_STATE_TOUCH_SCROLL: Log.i("Main","手指按着滑动"); break; } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { }}
activity_main
<?xml version="1.0" encoding="utf-8"?><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="com.example.wuzuo.listview.MainActivity"> <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/listView1" /></RelativeLayout>
item.xlm
<?xml version="1.0" encoding="utf-8"?><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:id="@+id/pic" android:layout_marginLeft="15dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text" android:textColor="#000000" android:text="demo" android:textSize="40dp" /></LinearLayout>
0 0
- android--ListView(控件+二种适配器+监听事件)
- Android-ListView两种适配器以及事件监听
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- (转)【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- 自定义ListView适配器并实现监听控件
- Android UI 设计:ListView控件和ArrayAdapter适配器(二)
- 23—自定义ListView【通用】适配器并实现监听控件
- 自定义ListView【通用】适配器并实现监听控件!
- 自定义ListView【通用】适配器并实现监听控件!
- 自定义ListView【通用】适配器并实现监听控件!
- 自定义ListView【通用】适配器并实现监听控件
- android EditText控件事件监听
- android EditText控件事件监听
- android EditText控件事件监听
- android EditText控件事件监听
- linux下解压命令大全
- 示波器看UART波形
- 遍历Map的四种方法
- KMP算法解析
- UITextField代理事件
- android--ListView(控件+二种适配器+监听事件)
- MFC ViewPort与Window 坐标转换
- Unsupported protocol: t3 异常的处理
- 接收到含有结束符的字符怎么办
- iOS中最简单实用的自定义动态返回行高的cell,动态计算cell的高度
- C语言的艺术初习
- 基于 python 的接口测试框架
- php依赖注入
- JavaScript滚动到底部触发加载数据