2010-12-20 8 views
0

Hai jeder. Ich bin neu bei Android. In meinem Projekt hatte ich Probleme beim Lesen von XML-Dateien. In meinem XML habe ich einige Audios und Videos Pfade eingefügt und ich möchte die XML-Datei durch den Code lesen und ich möchte einige Bilder in meiner Ansicht anzeigen, wenn es einige Audio- oder Videodateien gibt. kann jeder Körper tel, wie man die XML-Datei liest. danken Ihnen im VorausÜberprüfen von Ressourcen in XML und Anzeigen von Symbolen für die Ressourcen in Android

Antwort

1

Ok zuerst müssen Sie Below einen Parser erstellen, ist der Code, dies zu tun:

public static void readTemplateFile (Context context) {

/** 
    Include File Checking 
    */ 

    try { 
     XML_Handler_Template myExHan = new XML_Handler_Template(); 

     InputStreamReader isr = new 
     FileReader(new File(Environment.getExternalStorageDirectory().getPath() + "/Library Template.xml")); 

     XML_Handler_Template.context = context; 

     SAXParserFactory spf = SAXParserFactory.newInstance(); 
     SAXParser sp = spf.newSAXParser(); 

     XMLReader xr = sp.getXMLReader(); 

     xr.setContentHandler((ContentHandler) myExHan); 

     xr.parse(new InputSource(isr)); 


    } catch (Exception e) { 

     Toast.makeText(context, ">" + e.getMessage(), Toast.LENGTH_LONG).show(); 


    } 

} 

Sie müssen dann einen Handler Klasse. Im obigen Beispiel heißt meine Klasse XML_Handler_Template.

FileReader (neue Datei (Environment.getExternalStorageDirectory(). GetPath() + "/FILEPATH/FILE.XML")); Hier

ist die XML_Handler_Class im Moment ist es leer ist:

Import org.xml.sax.Attributes; importieren org.xml.sax.SAXException; importieren org.xml.sax.helpers.DefaultHandler;

public class XML_Handler_Template erstreckt Default {

public static Context context = null; 

@Override 
public void startDocument() throws SAXException { 
    //this is called when the document is first read 
} 

@Override 
public void startElement(String namespaceURI, String localName, 
     String qName, Attributes atts) throws SAXException { 
        //This is called when a new Tag is opened 
        //localName holds the Tag Name, the Value is got from the 
        //Characters function at the end of this class 

        //the attributes for each tag are stored in the atts array, you can either handle the attribute values here or pass the information to a separate function to handle them, 
        if (atts.getLength()>0){ 
      for (int i=0;i<atts.getLength();i++){ 

       addAttrib(atts.getLocalName(i) , atts.getValue(i)) ; 

      } 
     } 
} 

@Override 
public void endElement(String namespaceURI, String localName, String qName) 
throws SAXException { 
    //This is called when a Tag is closed 
} 

@Override 
public void endDocument() throws SAXException { 
       //this is called when the document is closed 
} 

@Override 
public void characters(char ch[], int start, int length) { 
      //This is where the value of a Tag are read 
    String value = new String(ch , start , length); 
      // You may want to include a replaceAll("\r","") and replaceAll("\n","") to remove any hidden chars 

}  

}

haben ein Spiel mit diesem und sehen Sie, wie Sie jetzt = 0 bekommen) ich einen Zusammenhang zu der Klasse übergeben so, während ich lernte, Ich könnte Toasts verwenden, um mir die Werte zu zeigen, die gelesen wurden.

+0

k danke. Ich habe auf SD-Karte gespeichert und ich möchte das relevante Audio \ Video-Symbol anzeigen. – user493244

+0

Ok, es gibt ein paar Dinge, die Sie implementieren müssen –

+0

Ok, es gibt eine Reihe von Dingen, die Sie in den Griff bekommen müssen. 1. XML Parsing 2. Drawables (Die Symbole und die Spezifikationen für verschiedene Geräte benötigt) 3. Ansichten und Inflatoren. Hinzufügen von benutzerdefinierten ListItems zu einer ListView Oder Dynamische Hinzufügen von Ansichten zu einer ScrollView sind Sie mit den oben genannten vertraut? –

Verwandte Themen