加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

实现二级列表双listview省市选择

发布时间:2020-12-16 09:00:10 所属栏目:百科 来源:网络整理
导读:实现的效果图如下 其中 难点在于 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();
}
});

}

源代码下载地址

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读