android从xml文件获取节点列表属性
我从xml文件生成listview。我将从“segment”标记中获取元素。当我运行和调试代码时,我会得到以下错误android从xml文件获取节点列表属性,android,xml-parsing,android-listview,Android,Xml Parsing,Android Listview,我从xml文件生成listview。我将从“segment”标记中获取元素。当我运行和调试代码时,我会得到以下错误java.lang.NullPointerException。如果我进行愚蠢的编码,请更正我的代码。这是我在android中的java代码: public class ListSegment extends ListActivity { String URL_XML = "http://www.macetlagi.com/maps/st/canvaser/3/tb/tb123";
java.lang.NullPointerException
。如果我进行愚蠢的编码,请更正我的代码。这是我在android中的java代码:
public class ListSegment extends ListActivity {
String URL_XML = "http://www.macetlagi.com/maps/st/canvaser/3/tb/tb123";
static final String KEY_SEGMENT = "segment";
static final String KEY_SEGMENT_ID = "segment_id";
static final String KEY_MAIN_SEGMENT = "main_segment_name";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listsegment_main);
ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(URL_XML);
Document doc = parser.getDomElement(xml);
NodeList nL = doc.getElementsByTagName(KEY_SEGMENT);
for (int i = 0; i < nL.getLength(); i++) {
Node node = nL.item(i);
if(node.hasAttributes()) {
NamedNodeMap attr_id = node.getAttributes();
attr_id.getNamedItem(KEY_SEGMENT);
}
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element) nL.item(i);
map.put(KEY_SEGMENT_ID, parser.getValue(e, KEY_SEGMENT_ID));
map.put(KEY_MAIN_SEGMENT, parser.getValue(e, KEY_MAIN_SEGMENT));
menuItems.add(map);
}
ListAdapter adapter = new SimpleAdapter(this, menuItems, R.layout.list_item,
new String[] {KEY_SEGMENT_ID, KEY_MAIN_SEGMENT}, new int[] {
R.id.segmentid, R.id.segmentname
});
setListAdapter(adapter);
}
}
公共类ListSegment扩展ListActivity{
字符串URL_XML=”http://www.macetlagi.com/maps/st/canvaser/3/tb/tb123";
静态最终字符串键\u SEGMENT=“SEGMENT”;
静态最终字符串键\u SEGMENT\u ID=“SEGMENT\u ID”;
静态最终字符串键\u MAIN\u SEGMENT=“MAIN\u SEGMENT\u name”;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.listsegment_main);
ArrayList menuItems=新建ArrayList();
XMLParser=新的XMLParser();
字符串xml=parser.getXmlFromUrl(URL\uxml);
Document doc=parser.getdoElement(xml);
NodeList nL=doc.getElementsByTagName(键段);
对于(int i=0;i
请提供更多信息:例如,来自logcat,或者至少指出引发NullPointerException
的行。是的..我在“NodeList nL=doc.getElementsByTagName(KEY_段);”行中出错。请就这个问题向我提出建议,@mh这表明doc
是null
,这意味着语句parser.getdoElement(xml)
不会返回您期望的结果。我建议您调试项目并查看实际的运行时值。这样就很容易判断出哪里出了问题。