Android复写BaseAdapter并显示ListView视图
来源:互联网 发布:单片机最小系统能干嘛 编辑:程序博客网 时间:2024/06/06 05:52
使用BaseAdaper时,我们常写一个类来继承它。因为BaseAdapter是一个抽象类,所以继承它必修实现它的方法。下面用一个小例子来学习BaseAdapter适配器实现ListView的多行显示效果。
例子的目录结构:
com.person.adapter包:
public class MyAdapter extends BaseAdapter {LayoutInflater mInflater;List<PersonInfo> list;public MyAdapter(Context context, List<PersonInfo> list) {super();this.mInflater = LayoutInflater.from(context);this.list = list;}// 内部类优化作用public final class ViewHolder {public TextView id;public TextView name;public TextView address;public ImageView img;}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder = null;if (convertView == null) {viewHolder = new ViewHolder();convertView = mInflater.inflate(R.layout.list_item, null);viewHolder.id = (TextView) convertView.findViewById(R.id.tv_id);viewHolder.name = (TextView) convertView.findViewById(R.id.tv_name);viewHolder.address = (TextView) convertView.findViewById(R.id.tv_address);convertView.setTag(viewHolder);} else {viewHolder = (ViewHolder) convertView.getTag();}viewHolder.id.setText(list.get(position).getId());viewHolder.name.setText(list.get(position).getName());viewHolder.address.setText(list.get(position).getAddress());return convertView;}}
com.person.activity包:
public class MianActivity extends Activity {private ListView listView;private MyAdapter adapter;List<PersonInfo> list = new ArrayList<PersonInfo>();@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);listView = (ListView) findViewById(R.id.lv);SAXParserFactory factory = SAXParserFactory.newInstance();try {XMLReader reader = factory.newSAXParser().getXMLReader();XMLParse xmlParse = new XMLParse(list);reader.setContentHandler(xmlParse);InputStream is = getResources().openRawResource(R.raw.person);reader.parse(new InputSource(is));// 测试for (Iterator iterator = list.iterator(); iterator.hasNext();) {PersonInfo personInfo = (PersonInfo) iterator.next();System.out.println(personInfo.getId());System.out.println(personInfo.getName());System.out.println(personInfo.getAddress());}} catch (Exception e) {e.printStackTrace();}adapter = new MyAdapter(this, list);listView.setAdapter(adapter);}}
com.person.model包:
public class PersonInfo {private String id;private String name;private String address;public PersonInfo(){super();}public void setId(String id){this.id = id;}public String getId(){return id;}public void setName(String name){this.name = name;}public String getName(){return name;}public void setAddress(String address){this.address = address;}public String getAddress(){return address;}}com.person.parse包:
public class XMLParse extends DefaultHandler {private String tag;List<PersonInfo> list;;PersonInfo personInfo;// 构造方法实例化listpublic XMLParse(List<PersonInfo> list) {super();this.list = list;}@Overridepublic void startDocument() throws SAXException {super.startDocument();}@Overridepublic void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {if (localName.equals("person")) {personInfo = new PersonInfo();}tag = localName;super.startElement(uri, localName, qName, attributes);}@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {String str = new String(ch, start, length);if (tag.equals("id")) {personInfo.setId(str);} else if (tag.equals("name")) {personInfo.setName(str);} else if (tag.equals("address")) {personInfo.setAddress(str);}super.characters(ch, start, length);}@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {// 此处是pName而不再是localNameif (qName.equals("person")) {list.add(personInfo);}tag = "";super.endElement(uri, localName, qName);}@Overridepublic void endDocument() throws SAXException {super.endDocument();}}效果图:
- Android复写BaseAdapter并显示ListView视图
- ListView(列表视图)+BaseAdapter(基础适配器)=android滑动列表
- Android ListView理解,BaseAdapter
- Android ListView理解,BaseAdapter
- Android ListView BaseAdapter 分析
- Android ListView理解,BaseAdapter
- Android:ListView BaseAdapter
- [Android]ListView-BaseAdapter
- android listview baseadapter
- 列表视图(ListView)——BaseAdapter
- Android复习练习十一(ListView列表显示使用BaseAdapter以及ListView动态刷新)
- Android ListView理解,BaseAdapter (概念)
- Android ListView理解之BaseAdapter
- Android ListView(四) ---继承BaseAdapter
- Android ListView BaseAdapter的理解
- Android杂谈--ListView之BaseAdapter
- Android开发ListView之BaseAdapter
- Android ListView使用BaseAdapter 优化
- How to change the Push and Pop animations in a navigation based app
- Difference for LIOT and SIOT
- unresolved external symbol _main
- 关于搜索框设计技巧
- 常用的安全CRT函数
- Android复写BaseAdapter并显示ListView视图
- 工欲善其事,必先利其器
- Flex3 实战 10章 事件
- C_字符串 PK string
- LINQ查询技术
- How:程序与文件之间的信息传递实现(File I/O)
- 织梦(dede)注册会员时增加字段
- Java 数字输入的一个bug
- Bionic C Library Overview