public void getSettings(){
File file=new File(Environment.getExternalStorageDirectory().toString()
+File.separator
+"Text"
+File.separator
+"PortSettings.xml");
if(!file.exists()){
return;
}
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try{
builder=dbf.newDocumentBuilder();
}
catch(ParserConfigurationException e){
e.printStackTrace();
}
Document doc=null;
try {
doc=builder.parse(file);
}
catch(SAXException e){
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
TextView tv = (TextView)findViewById(R.id.textView1);
NodeList settings=doc.getElementsByTagName("settings");
tv.setText(settings.getLength());
//错误在红字附近!!
//直接运行settings.getLength();没有问题不会报错
//运行tv.setText(settings.getLength());会闪退
//不知道错在哪里了! 高手帮我看看哪里有问题
/*
for(int i=0;i<settings.getLength();i++){
Element e=(Element)settings.item(i);
tv1.setText(" port "+e.getElementsByTagName("port").item(0).getFirstChild().getNodeValue()
+" buard "+e.getElementsByTagName("buard").item(0).getFirstChild().getNodeValue()
+" checkbit "+e.getElementsByTagName("checkbit").item(0).getFirstChild().getNodeValue()
+" databit "+e.getElementsByTagName("databit").item(0).getFirstChild().getNodeValue()
+" stopbit "+e.getElementsByTagName("stopbit").item(0).getFirstChild().getNodeValue()
);
}*/
}
xml文件内容如下
<?xml version="1.0" encoding="GBK"?>
<portsettings>
<settings>
<port>1</port>
<buard>1200</buard>
<checkbit>NONE</checkbit>
<databit>5</databit>
<stopbit>1</stopbit>
</settings>
</portsettings>
为什么会闪退啊????
------解决方案--------------------
tv.setText(settings.getLength()) 这个方法不能设置整形,你的getLength()是整形。
这样写
tv.setText(settings.getLength() + "") 变成字符串即可。