public class NewThread extends AsyncTask<String, Void, String> {
InputStream in;
Map<String, String> m;
@Override
protected String doInBackground(String... arg) {
data =new ArrayList<Map<String, String>>();
try{
// Создаем объект URL
URL url = new URL(getString(R.string.rates_url));
// Соединяемся
HttpURLConnection httpConnection =(HttpURLConnection) url.openConnection();
// Получаем от сервера код ответа
int responseCode = httpConnection.getResponseCode();
// Если код ответа хороший, парсим поток(ответ сервера),
// устанавливаем дату в заголовке приложения и
// заполняем list нужными Map'ами
//if (responseCode == HttpURLConnection.HTTP_OK) {
in = httpConnection.getInputStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
Document dom;
dom = db.parse(in);
org.w3c.dom.Element docElement = dom.getDocumentElement();
String date = docElement.getAttribute("Date");
setTitle(getTitle() + " на " + date);
NodeList nodeList = docElement.getElementsByTagName("Valute");
int count = nodeList.getLength();
if (nodeList != null && count > 0) {
for (int i = 0; i < count; i++) {
Element entry = (Element) nodeList.item(i);
m = new HashMap<String, String>();
String charCode = ((Document) entry).getElementsByTagName(KEY_CHAR_CODE).item(0).getFirstChild().getNodeValue();
String value = ((Document) entry).getElementsByTagName(KEY_VALUE).item(0).getFirstChild().getNodeValue();
String nominal = "за " + ((Document) entry).getElementsByTagName(KEY_NOMINAL).item(0).getFirstChild().getNodeValue();
String name = ((Document) entry).getElementsByTagName(KEY_NAME).item(0).getFirstChild().getNodeValue();
m.put(KEY_CHAR_CODE, charCode);
m.put(KEY_VALUE, value);
m.put(KEY_NOMINAL, nominal);
m.put(KEY_NAME, name);
data.add(m);
}
}
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setListAdapter(sa);
}
}