博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android-基础编程-ListView
阅读量:4985 次
发布时间:2019-06-12

本文共 2886 字,大约阅读时间需要 9 分钟。

ListView主要包括view和数据源。其数据适配器列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter。

ListView的没有oom原因。经典图:

1.democoderjoy中使用,这里我们新建一个ListViewActi的activity。布局文件listview比较简单

2.此外还需要一个item项

d

3.arrayAdapter的使用采用布局的第二个listview id

核心代码:

ArrayAdapter
adapter=new ArrayAdapter
( this,R.layout.simple_list_item_1, mData); ListView listView=(ListView) findViewById(R.id.list_view); listView.setAdapter(adapter);

4.simpleAdater使用

ListView list = (ListView) findViewById(R.id.ListView01);        ArrayList
> listItem = new ArrayList
>(); for(int i=0;i<10;i++) { HashMap
map = new HashMap
(); map.put("ItemImage", R.drawable.icon);//图像资源的ID map.put("ItemTitle", "Level "+i); map.put("ItemText", "Finished in 1 Min 54 Secs, 70 Moves! "); listItem.add(map); } SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,//数据源 R.layout.listview_item,//ListItem的XML实现 //动态数组与ImageItem对应的子项 new String[] {"ItemImage","ItemTitle", "ItemText"}, //ImageItem的XML文件里面的一个ImageView,两个TextView ID new int[] {R.id.imageView,R.id.textView01,R.id.textView02} ); View view = LayoutInflater.from(this).inflate(R.layout.head_view_layout, null); list.addHeaderView(view, null, true); list.setOverscrollHeader(getResources().getDrawable(R.drawable.icon)); list.addFooterView(view); list.setHeaderDividersEnabled(true); list.setFooterDividersEnabled(true); list.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); list.setAdapter(listItemAdapter); //list.setOverScrollMode(View.OVER_SCROLL_NEVER); //view.setVisibility(View.GONE); //添加点击 list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView
arg0, View arg1, int arg2, long arg3) { setTitle("点击第"+arg2+"个项目"); Toast.makeText(getApplicationContext(),"点击第"+arg2+"个项目",Toast.LENGTH_SHORT).show(); } }); SimpleCursorAdapter d; //添加长按点击 响应餐单 list.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { menu.setHeaderTitle("长按菜单-ContextMenu"); menu.add(0, 0, 0, "弹出长按菜单0"); menu.add(0, 1, 0, "弹出长按菜单1"); } });

5.效果如下:

Tips:

a.  footerDividersEnabled:是否在footerView(表尾)前绘制一个分隔条,默认为true

     headerDividersEnabled:是否在headerView(表头)前绘制一个分隔条,默认为true

b. listview可以在布局中设置背景

c. listview具有headview 和footview 如程序中所使用的,

list.addHeaderView(view, null, true);        list.setOverscrollHeader(getResources().getDrawable(R.drawable.icon));list.addFooterView(view);

使用的子view的布局如下:

 d.设置从底向上排列参数 布局中定义stackFromBottom

 

转载于:https://www.cnblogs.com/zCoderJoy/p/6395671.html

你可能感兴趣的文章
设置定点数学属性
查看>>
自动化测试工具 Test Studio入门教程
查看>>
Python之进程线程
查看>>
排序算法(一) —— 冒泡排序
查看>>
No.026:Remove Duplicates from Sorted Array
查看>>
SpringBoot项目的几种创建方式,启动、和访问
查看>>
窗外【1】
查看>>
解决"disabled". Expected Boolean, got Number with value 0
查看>>
Android 四大组件之Service
查看>>
OC--init,initialize,initWithCoder:,initWithFrame:各方法的区别和加载顺序
查看>>
xml.dom.minidom
查看>>
Exponentiation
查看>>
本地jar上传到本地仓库
查看>>
四则运算C++带Qt界面版本,吾王镇楼。。。。。
查看>>
各种获取时间的方法包含各类时间格式
查看>>
安卓7.0手机拍照闪退问题解决
查看>>
黑马程序员------IO(一)
查看>>
springcloud的配置
查看>>
ME525+ Defy+ 刷机指南[zz]
查看>>
支持触屏的jQuery轮播图插件
查看>>