关于android自定义xml文件 调用、读取、使用pull方式解析得到集合并作为数据源绑定到listView上显示
想实现个分类查询电话号码的例子,比如外送电话---肯德基 麦当劳;银行电话---中国银行、工商银行等等。第一个activity显示分类,跳转到第二个activity显示具体的子分类,然后点击子分类的任意数据,弹出对话框 提示拨号。InputStream input = this.getClass().getClassLoader().getResourceAsStream("restaurant.xml"); try { listBean = getrestaurant(input); } catch (Exception e) { e.printStackTrace(); } System.out.println(listBean.size());// listView = (ListView) findViewById(R.id.listView);//// List<Map<String,Object>> data = new ArrayList<Map<String,Object>>();//初始化,simpleAdapter 需要绑定的数据是List<Map<String,Object>>类型的// for(int i = 0; i<listBean.size(); i++)// {// Map<String,Object> item = new HashMap<String, Object>();// item.put("name", i+"");// item.put("phone",);// data.add(item);// }// SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(), data, R.layout.particular, new String[]{"name","phone"}, new int[]{R.id.username,R.id.userphone});// listView.setAdapter(adapter);//绑定数据 //tv.setText(getString(listBean.size()));} public List<restaurantBean> getrestaurant(InputStream input) throws Exception {List<restaurantBean> list = null; restaurantBean rb = null; XmlPullParser parser = Xml.newPullParser(); parser.setInput(input, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: list = new ArrayList<restaurantBean>(); break; case XmlPullParser.START_TAG: if ("restaurant".equals(parser.getName())) { rb = new restaurantBean(); rb.setId(Integer.parseInt(parser.getAttributeValue(0))); } if (rb != null) { if ("name".equals(parser.getName())) { rb.setName(parser.nextText()); } else if ("phone".equals(parser.getName())) { rb.setPhone(Integer.parseInt(parser.nextText())); } } break; case XmlPullParser.END_TAG: if ("restaurant".equals(parser.getName())&&rb!=null) { list.add(rb); rb = null; } break; } event = parser.next(); } return list; }getrestaurant(InputStream input)这个方法是用来实现pull解析xml的。 InputStream input = this.getClass().getClassLoader().getResourceAsStream("restaurant.xml");关于这个读取xml文件 路径应该怎么写?还有restaurant.xml这个文件应该存放在哪?看网上说应该是res/xml/restaurant.xml 这样 那自己创建一个res下的xml文件夹 放进去就行?这边返回的集合用这种方式:List<Map<String,Object>> data = new ArrayList<Map<String,Object>>();SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(), data, R.layout.particular, new String[]{"name","phone"},new int[], {R.id.username,R.id.userphone}); 这个new int[]要写什么 item.put("name", i+"");// item.put("phone",——————这个?);// data.add(item); 非常感谢!!!!