2014-02-10 14 views
0

我有一種方法是處理要展開的列表和listview中顯示的數據,或者我可以說父項和子項。我如何界面xml文件到我的方法

這裏是prepareListData方法:

private void prepareListData() { 

    listDataHeader = new ArrayList<String>(); 
    listDataChild = new HashMap<String, List<String>>(); 

    // Adding child data 
    listDataHeader.add("VRP Medical Bay"); 
    //listDataHeader.add(""); 
    //listDataHeader.add(""); 

    // Adding child data 
    List<String> listUnderVRP = new ArrayList<String>(); 
    //this is the data that i need to get from my xml service 
      listUnderVRP.add("eDataClinical"); 
    listUnderVRP.add("Schedule"); 
    listUnderVRP.add("Dictate"); 
    listUnderVRP.add("View Messages"); 
    listUnderVRP.add("Reports for Signature"); 
    listUnderVRP.add("View Billing"); 
    listUnderVRP.add("View State"); 


    listDataChild.put(listDataHeader.get(0), listUnderVRP); // Header, Child data 
    //listDataChild.put(listDataHeader.get(1), listUnderVRP1); 
    //listDataChild.put(listDataHeader.get(2), listUnderVRP2); 
} 

我的問題是,我如何將XML文件集成到這種方法,因爲我想從XML文件得到DATAS,這樣我可以定製我的列表視圖。

我想實現這個代碼:

ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>(); 

    XMLParser parser = new XMLParser(); 
    String xml = parser.getXmlFromUrl(URL); // getting XML from URL 
    Document doc = parser.getDomElement(xml); // getting DOM element 

    NodeList nl = doc.getElementsByTagName(KEY_SONG); 
    // looping through all song nodes <song> 
    for (int i = 0; i < nl.getLength(); i++) { 
     // creating new HashMap 
     HashMap<String, String> map = new HashMap<String, String>(); 
     Element e = (Element) nl.item(i); 
     // adding each child node to HashMap key => value 
     map.put(KEY_ID, parser.getValue(e, KEY_ID)); 
     map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE)); 
     map.put(KEY_THUMB_URL, parser.getValue(e, KEY_THUMB_URL)); 

     // adding HashList to ArrayList 
     songsList.add(map); 
    } 
+0

你將不得不實現一個XML解析器。 –

+0

嗨@DanielBo,你有什麼想法如何實現它? – user3243065

回答

0

的實現依賴於XML文件。但是這應該讓你開始。

try { 
     System.setProperty("org.xml.sax.driver","org.xmlpull.v1.sax2.Driver"); 
     createXMLReader = XMLReaderFactory.createXMLReader(); 
     createXMLReader.setContentHandler(new DefaultHandler() { 

      Lesson currentLesson; 

      @Override 
      public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { 
       if ("attributeName".equals(localName)){ 
        String value = attributes.getValue("attributeValue"); 

       } 
      } 
     }); 
     createXMLReader.parse(new InputSource(activity.getResources().getAssets().open("yourXML"))); 
    } catch (SAXException e) { 
     throw new RuntimeException(e); 
    } catch (IOException e) { 
     throw new RuntimeException(e); 
    } 
相關問題