实现二级列表双listview省市选择
发布时间:2020-12-16 06:11:54 所属栏目:百科 来源:网络整理
导读:实现的效果图如下 其中 难点在于 xml 的解析,以及两个listview 的交互 解析xml public class XmlParserHandler extends DefaultHandler { /** * 存储所有的解析对象 */ private ListProvinceModel provinceList = new ArrayListProvinceModel(); public Xml
实现的效果图如下
其中 难点在于 xml 的解析,以及两个listview 的交互
解析xml
public class XmlParserHandler extends DefaultHandler { /** * 存储所有的解析对象 */ private List<ProvinceModel> provinceList = new ArrayList<ProvinceModel>(); public XmlParserHandler() { } public List<ProvinceModel> getDataList() { return provinceList; } @Override public void startDocument() throws SAXException { // 当读到第一个开始标签的时候,会触发这个方法 } ProvinceModel provinceModel = new ProvinceModel(); CityModel cityModel = new CityModel(); @Override public void startElement(String uri,String localName,String qName,Attributes attributes) throws SAXException { // 当遇到开始标记的时候,调用这个方法 if (qName.equals("province")) { provinceModel = new ProvinceModel(); provinceModel.setName(attributes.getValue(0)); provinceModel.setCityList(new ArrayList<CityModel>()); } else if (qName.equals("city")) { cityModel = new CityModel(); cityModel.setName(attributes.getValue(0)); } } @Override public void endElement(String uri,String qName) throws SAXException { // 遇到结束标记的时候,会调用这个方法 if (qName.equals("city")) { provinceModel.getCityList().add(cityModel); } else if (qName.equals("province")) { provinceList.add(provinceModel); } } @Override public void characters(char[] ch,int start,int length) throws SAXException { } } 两个listView 数据交互
{CSDN:CODE:
mainlist.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent,View view, int position,long id) { selectSE=position; initAdapter(mCitisDatasMap.get(mProvinceDatas[position])); mainAdapter.setSelectItem(position); mainAdapter.notifyDataSetChanged(); } }); morelist.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent,long id) { //Toast.makeText(context.getActivity(),mProvinceDatas[selectSE]+mCitisDatasMap.get(mProvinceDatas[selectSE])[position],0).show(); moreAdapter.setSelectItem(position); moreAdapter.notifyDataSetChanged(); context.setCityName(mCitisDatasMap.get(mProvinceDatas[selectSE])[position]); SelectCity.this.dismiss(); } }); } 源代码下载地址 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |