Основное приложение для Android, чтобы получить текущую температуру города, который проходит пользователь - PullRequest
0 голосов
/ 10 февраля 2012

Я только что начал разрабатывать приложение для Android вчера и получаю огромное удовольствие от этой технологии.

Мне нужно создать приложение, в котором пользователь должен ввести название города в тексте редактирования, а затем текущую температуруэтот город отображается в текстовом виде.

Я хочу использовать следующий URL для того, чтобы я мог легко добавить название города.В настоящее время здесь я прохожу Сидни.

http://www.google.com/ig/api?weather=sydney

Пожалуйста, помогите мне в этом.

Ответы [ 3 ]

1 голос
/ 10 февраля 2012

Ответ на этот вызов возвращает XML.Вам нужно выбрать между DOM и SAX для разбора ответа xml.Для начала с Google на Android разбора XML.Я нашел эту ссылку, есть и другие.Всего наилучшего.

http://android -pro.blogspot.in / 2011/07 / parsing-xml-wit-dom-parser.html

1 голос
/ 10 февраля 2012

Полагаю, вы хотите знать, как использовать XML-документ, который вы получаете, вызывая URL-адрес?!

    DefaultHttpClient httpclient = new DefaultHttpClient();

    HttpGet httpget = new HttpGet(http://www.google.com/ig/api?weather=sydney);
    httpget.setHeader("Content-Type", "application/xml");

    ResponseHandler responseHandler = new BasicResponseHandler();
    String responseBody = httpclient.execute(httpget, responseHandler);

Это в основном то, что вам нужно. Тело ответа должно содержать документ xml. Там вы сможете узнать свою температуру.

Вы можете улучшить это, добавив Credentials и другие параметры в конструктор HttpClient. См. Например http://massapi.com/class/ba/BasicHttpParams.html

0 голосов
/ 15 февраля 2012

Используя SAX Parser, вы можете сделать следующее.

/ * Заменить пробелы на HTML-эквивалент.* / // url = новый URL (queryString.replace ("", "% 20"));

                     /* Get a SAXParser from the SAXPArserFactory. */
                     SAXParserFactory spf = SAXParserFactory.newInstance();
                     SAXParser sp = spf.newSAXParser();

                     /* Get the XMLReader of the SAXParser we created. */
                     XMLReader xr = sp.getXMLReader();

                     /*
                      * Create a new ContentHandler and apply it to the
                      * XML-Reader
                      */
                     GoogleWeatherHandler gwh = new GoogleWeatherHandler();
                     xr.setContentHandler(gwh);

                     /* Use HTTPClient to deal with the URL */ 
                     HttpClient httpclient = new DefaultHttpClient(); 
                     HttpGet httpget = new HttpGet(queryString.replace(" ", "%20")); 
                     Log.d(DEBUG_TAG, "executing request " + httpget.getURI()); 
                     // create a response handler 
                     ResponseHandler<String> responseHandler = new BasicResponseHandler();
                     Log.i("Respond Handler","Step 1");
                     String responseBody = httpclient.execute(httpget, responseHandler); 
                      Log.d(DEBUG_TAG, "response from httpclient:\n "+responseBody); 

                     ByteArrayInputStream is = new ByteArrayInputStream(responseBody.getBytes()); 
                     xr.parse(new InputSource(is)); 
                     Log.d(DEBUG_TAG, "parse complete"); 
                     // parse complete
...