person.setName(new String(element.getFirstChild().getNodeValue()));
}elseif("age".equals(childNode.getNodeName())){
person.setAge(new Short(element.getFirstChild().getNodeValue()));
}
}
}
pers.add(person);
}
inStream.close();
return pers;
}
}
(3)使用Pull解析器讀取XML文件
PullPerson.java
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlSerializer;
import android.os.Environment;
import android.util.Xml;
import com.sinber.domain.Person;
publicclass PullPerson {
publicstaticvoid save(List persons) throws Exception{
XmlSerializer serializer = Xml.newSerializer();
File file =new File(Environment.getExternalStorageDirectory(),"person.xml");
FileOutputStream outStream =new FileOutputStream(file);
serializer.setOutput(outStream,"UTF-8");
serializer.startDocument("UTF-8", true);
serializer.startTag("", "persons");
for(Person person:persons){
serializer.startTag("", "person"); //person
serializer.attribute("", "id", ""+person.getId());
serializer.startTag("", "name"); //name
serializer.text(person.getName());
serializer.endTag("", "name"); //name
serializer.startTag("", "age"); //age
serializer.text(person.getAge().toString());
serializer.endTag("", "age");//age
serializer.endTag("", "person"); //person
}
serializer.endTag("", "persons");
serializer.endDocument();
outStream.close();
}
publicstatic List getPersons() throws Exception{
List persons =null;
Person person =null;
XmlPullParser parser= Xml.newPullParser();
InputStream inStream = PullPersonService.class.getClassLoader().getResourceAsStream("person.xml");
parser.setInput(inStream, "UTF-8");
int eventType = parser.getEventType(); //觸發第一個事件
while(eventType!=XmlPullParser.END_DOCUMENT){
switch(eventType){
case XmlPullParser.START_DOCUMENT:
persons =new ArrayList();
break;
case XmlPullParser.START_TAG: //開始元素事件
if("person".equals(parser.getName())){
person =new Person();
person.setId(new Integer(parser.getAttributeValue(0)));
}elseif(person!=null){
if("name".equals(parser.getName())){
person.setName(parser.nextText());
}elseif("age".equals(parser.getName())){
person.setAge(new Short(parser.nextText()));
}
}
break;
case XmlPullParser.END_TAG: //結束元素事件
if("person".equals(parser.getName())){
persons.add(person);
person =null;
}
break;
default:
break;
}
eventType = parser.next();
}
return persons;
}
}
以上三種方式任選其一即可。
9.根據自己的理解描述下Android數字簽名。
答:(1)所有的應用程序都必須有數字證書,Android系統不會安裝一個沒有數字證書的應用程序
(2)Android程序包使用的數字證書可以是自簽名的,不需要一個權威的數字證書機構簽名認證
(3)如果要正式發布一個Android ,必須使用一個合適的私鑰生成的數字證書來給程序簽名,而不能使用adt插件或者ant工具生成的調試證書來發布。
(4)數字證書都是有有效期的,Android只是在應用程序安裝的時候才會檢查證書的有效期。如果程序已經安裝在系統中,即使證書過期也不會影響程序的正常功能。
10.已知單鏈表的頭結構head,寫一個函數把這個鏈表逆序。
答: 如下所示
Node.java
publicclass Node {
private Integer count;
private Node nextNode;
public Node(){
}
public Node(int count){
this.count =new Integer(count);
}
public Integer getCount() {
return count;
}
publicvoid setCount(Integer count) {
原文轉自:http://blog.csdn.net/xyz_lmn/article/details/6922224