how to display image in grid view reading imageUrl from xml using sax parser in android

后端 未结 2 1736
长情又很酷
长情又很酷 2021-01-16 05:33

I am new in android. I want to create a application to read the XML file from an URL and show the image in a grid view using ImageUrl of image.


Thanks for the

相关标签:
2条回答
  • 2021-01-16 05:43
    • Working with XML on Android
    • Grid View example
    0 讨论(0)
  • 2021-01-16 05:54

    Check the following URl to kow about XML parsers

    http://www.totheriver.com/learn/xml/xmltutorial.html#6.2

    First get the data from url. store in in file. use the folowing code to parse the XML using SAXParser

    SAX Parser to parse an XML

    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    
    import org.xml.sax.helpers.DefaultHandler;
    
    public class SAXParserExample extends DefaultHandler{
    
        List myEmpls;
    
        private String tempVal;
    
        //to maintain context
        private Employee tempEmp;
    
    
        public SAXParserExample(){
            myEmpls = new ArrayList();
        }
    
        public void runExample() {
            parseDocument();
            printData();
        }
    
        private void parseDocument() {
    
            //get a factory
            SAXParserFactory spf = SAXParserFactory.newInstance();
            try {
    
                //get a new instance of parser
                SAXParser sp = spf.newSAXParser();
    
                //parse the file and also register this class for call backs
                sp.parse("employees.xml", this);
    
            }catch(SAXException se) {
                se.printStackTrace();
            }catch(ParserConfigurationException pce) {
                pce.printStackTrace();
            }catch (IOException ie) {
                ie.printStackTrace();
            }
        }
    
        /**
         * Iterate through the list and print
         * the contents
         */
        private void printData(){
    
            System.out.println("No of Employees '" + myEmpls.size() + "'.");
    
            Iterator it = myEmpls.iterator();
            while(it.hasNext()) {
                System.out.println(it.next().toString());
            }
        }
    
    
        //Event Handlers
        public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
            //reset
            tempVal = "";
            if(qName.equalsIgnoreCase("Employee")) {
                //create a new instance of employee
                tempEmp = new Employee();
                tempEmp.setType(attributes.getValue("type"));
            }
        }
    
    
        public void characters(char[] ch, int start, int length) throws SAXException {
            tempVal = new String(ch,start,length);
        }
    
        public void endElement(String uri, String localName, String qName) throws SAXException {
    
            if(qName.equalsIgnoreCase("Employee")) {
                //add it to the list
                myEmpls.add(tempEmp);
    
            }else if (qName.equalsIgnoreCase("Name")) {
                tempEmp.setName(tempVal);
            }else if (qName.equalsIgnoreCase("Id")) {
                tempEmp.setId(Integer.parseInt(tempVal));
            }else if (qName.equalsIgnoreCase("Age")) {
                tempEmp.setAge(Integer.parseInt(tempVal));
            }
    
        }
    
        public static void main(String[] args){
            SAXParserExample spe = new SAXParserExample();
            spe.runExample();
        }
    
    }
    
    0 讨论(0)
提交回复
热议问题