Android程序:简单的SimpleAdapter实现(OnItemClickListener,OnScrollListener)
2015-04-22 17:22
381 查看
item.xml:
MainActivity:
<?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_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:textSize="20sp" android:textColor="#000000" android:text="Chris"/> </LinearLayout>
MainActivity:
public class MainActivity extends Activity implements OnItemClickListener, OnScrollListener { private ListView listView; private SimpleAdapter simp_adapter; 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.listview); /** * simp_adapter=new SimpleAdapter( 上下文《context》, * 数据源--一个Map所组成的list集合《data》 每一个Map都回去对应listView列表中的一行,每个Map(键-值对)中的键必须包含所有在from中指定的键, 列表项的布局文件ID《resource》, * Map中的键名《from》, * 绑定数据视图中的ID,与from成对应关系《to》) */ dataList=new ArrayList<Map<String,Object>>(); simp_adapter = new SimpleAdapter(this, getData(), R.layout.item, new String[]{ "pic", "text" }, new int[]{ R.id.pic, R.id.text }); listView.setAdapter(simp_adapter); listView.setOnItemClickListener(this); listView.setOnScrollListener(this); } private List<Map<String, Object>> getData() { //为dataList加载内容 for(int i =0;i<20;i++){ Map<String,Object>map=new HashMap<String, Object>(); map.put("pic", R.drawable.ic_launcher); map.put("text", "Chris"+i); dataList.add(map); } return dataList; } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { switch (scrollState) { case SCROLL_STATE_FLING: Log.i("Log", "用户在手指离开屏幕之前,由于用力划了一下,视图仍然在滑动"); //滑动增加内容,新建一个map,并把新增项定义出来 Map<String, Object> map=new HashMap<String, Object>(); map.put("pic", R.drawable.ic_launcher); map.put("text", "滑动新增项"); //将新增的map加入到dataList dataList.add(map); //通知给ui线程给予刷新,没有这一步会导致崩溃 simp_adapter.notifyDataSetChanged(); break; case SCROLL_STATE_IDLE: Log.i("Log", "视图已经停止滑动"); break; case SCROLL_STATE_TOUCH_SCROLL: Log.i("Log", "手指没有离开屏幕,视图正在滑动"); break; default: break; } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //使用ListView的自带方法getItemAtPosition获取所点击位置的内容 String s=listView.getItemAtPosition(position)+""; //打印在屏幕上 Toast.makeText(this, "position="+position+" Text="+s, Toast.LENGTH_SHORT).show(); } }
相关文章推荐
- android: GridView onFling/onItemClickListener 滑动与点击事件 冲突
- ListView、ListFragment 无法实现 onListItemClick和setOnLongClickListener
- Android------三种监听OnTouchListener、OnLongClickListener同时实现即其中返回值true或者false的含义
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- Android-ListView-OnItemClickListener
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- Android setOnCreateContextMenuListener实现长按ListItem弹出不同菜单
- Android RecyclerView单击、长按事件标准实现:基于OnItemTouchListener + GestureDetector
- Android RecyclerView单击、长按事件标准实现:基于OnItemTouchListener + GestureDetector
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- 如何实现让ExpandableListView的父子item同时具备OnClickListener,onLongClickListener,onTouchEve
- Android 处理OnItemClickListener时关于焦点颜色的设置问题
- Android RecyclerView单击、长按事件标准实现:基于OnItemTouchListener + GestureDetector
- 微信小程序上拉刷新和下拉加载2种方法实现,onPullDownRefresh,scroll-view使用
- Recyclerview的Item支持可点击可长安类似ListViewOnItemClickListener
- Android实现的简单蓝牙程序示例
- Android开发笔记之简单基站定位程序的实现
- android OnLongClickListener长按事件返回值
- 第24章、OnLongClickListener长按事件(从零开始学Android)