android ListView 学习(1)
来源:互联网 发布:sql 查询合并表语句 编辑:程序博客网 时间:2024/04/29 18:43
今天学习ListView,现在总结一下,让ListView显示自己想要显示的List数据,总结了一下又3步,在这里表示我的API 19,总结了一下,用这张图来显示:
ListView adapter, 数据,在开发中有3中类型的adapter,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter,第三种是simpleAdapter的结合数据库的形式,废话不多述,第一种情况:
ArrayAdapt:
public class MainActivity extends ActionBarActivity { ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = new ListView(this); listView.setAdapter(new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,getData())); setContentView(listView); } private List<String> getData() { List<String> data = new ArrayList<String>(); data.add("item1"); data.add("item2"); data.add("item3"); data.add("item4"); return data;
support_simple_spinner_dropdown_item是android提供的,我使用的是api 19,不知道其他的api有没有
分析一下使用的步骤。
(1)定义一个数组来存放ListView中item的内容。
(2)通过实现ArrayAdapter的构造函数来创建一个ArrayAdapter的对象。
(3)通过ListView的setAdapter()方法绑定ArrayAdapter。
其中第二步有必要说一下的是,ArrayAdapter有多个构造函数,例子中实现的是最常用的一种。第一个参数为上下文,第二个参数为一个包含TextView,用来填充ListView的每一行的布局资源ID。第三个参数为ListView的内容。其中第二个参数可以自定义一个layout,但是这个layout必须要有TextView控件。通常我们使用Android提供的资源。
这是最简单的一种情况,就是将List中的数据进行显示;
因为android提供了adapter,有时候我们需要我们自己提供实现的adapter,BaseAdapter进行操作
public class MainActivity extends Activity { ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView)findViewById(R.id.lv); listView.setAdapter(new MyAdapter(getData(), this));// listView = new ListView(this);// listView.setAdapter(new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item,getData()));// setContentView(listView);// SimpleAdapter simpleAdapter = new SimpleAdapter(this,getData(),R.layout.simple_item,// new String[]{"title","info","img"},// new int[]{R.id.title,R.id.info,R.id.img});//// setListAdapter(simpleAdapter); } private List<Map<String, Object>> getData() { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map = new HashMap<String, Object>(); map.put("title", "G1"); map.put("info", "google 1"); map.put("img", R.drawable.abc_ab_share_pack_holo_light); list.add(map); map = new HashMap<String, Object>(); map.put("title", "G2"); map.put("info", "google 2"); map.put("img", R.drawable.abc_ab_share_pack_holo_light); list.add(map); map = new HashMap<String, Object>(); map.put("title", "G3"); map.put("info", "google 3"); map.put("img", R.drawable.abc_btn_check_to_on_mtrl_000); list.add(map); return list; }
LayoutInflater mInflater; private List list; public MyAdapter(List list,Context context){ this.list = list; this.mInflater = LayoutInflater.from(context); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { View item = mInflater.inflate(R.layout.simple_item, null); ImageView img = (ImageView)item.findViewById(R.id.img); TextView title = (TextView)item.findViewById(R.id.title); TextView info = (TextView)item.findViewById(R.id.info); img.setImageResource(R.drawable.ic_launcher); title.setText("Hello"); info.setText("world"); return item; }}
这里仅仅是现实出了一个自定义一个adapter,这样的数据显示很糟糕,数据量大了以后会导致滑动很慢,所以需要进行优化
0 0
- android ListView 学习(1)
- Android入门(1)- ListView学习
- android:listView学习记录1
- Android学习-1:ListView优化
- android学习笔记1 listview
- Android学习(9)-ListView
- Android学习(29) --ListView
- 9-7Android学习(listView优化(1))
- Android学习笔记之ListView(1)
- Android(OPhone) 学习笔记 - ListView + array
- Android学习笔记(十一):Activity-ListView
- Android学习笔记(十七):再谈ListView
- Android学习笔记(十七):再谈ListView
- Android学习笔记(十一):Activity-ListView
- Android学习笔记(十七):再谈ListView
- Android学习笔记(十七):再谈ListView
- Android学习笔记(十一):Activity-ListView
- Android学习—ListView使用(三)
- 最长递增子序列O(N^2),O(N log(N))
- lca相关
- 代码示例函数隐藏、覆盖、重载
- 杭电 HDU 1039 Easier Done Than Said?
- MapReduce编程教训
- android ListView 学习(1)
- 溢出导致Sigabrt
- Android数据库升级
- 揭秘:乔布斯如何让才华横溢的工程师们效忠
- LeetCode Spiral Matrix II
- linux常用压缩解压命令(tar,zip)
- SDK没有可选包以及无法下载成功(uninstall),jdk、sdk、adb环境配置,官方文档镜像
- 什么是封装?
- Dijkstra算法实现