关于android自定义xml文件 调用、读取、使用pull方式解析得到集合并作为数据源绑定到listView上显示

想实现个分类查询电话号码的例子,比如外送电话---肯德基麦当劳;银行电话---中国银行、工商银行等等。第一个activity显示分类,跳转到第二个activity显示具体... 想实现个分类查询电话号码的例子,比如外送电话---肯德基 麦当劳;银行电话---中国银行、工商银行等等。第一个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); 非常感谢!!!!
展开
 我来答
cubism05
2012-01-12 · 超过14用户采纳过TA的回答
知道答主
回答量:187
采纳率:100%
帮助的人:101万
展开全部
的inputStream读取文件,读取完成后记得inputStream.close()。 4.调用AssetManager.close()关闭AssetManager。 这个布局是需要在xml布局。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式