kobustm Napisano Styczeń 8, 2015 Zgłoś Udostępnij Napisano Styczeń 8, 2015 Witam mam problem z pobieraniem kursów walut do tablicy. Chciałbym aby pobrane kursy średnie dla danych walut były zapisywane w tablicy aby można było je dalej łatwo wykorzystać do przeliczania. Stworzyłem przycisk który ma wykonywac aktualizację tych kursów, lecz na androidzie wyskakuje bład android.os.NetworkOnMainThreadException. Dodałem do kodu <uses-permission android:name="android.permission.INTERNET" /> lecz nadal nie działa. Oto kod dla aktualizacji: public void onClick(View vv) { TextView kod_waluty[]; TextView kurs_sredni[]; try { URL url = new URL("http://www.nbp.pl/kursy/xml/LastA.xml"); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new InputSource(url.openStream())); doc.getDocumentElement().normalize(); NodeList nodeList = doc.getElementsByTagName("pozycja"); kod_waluty = new TextView[nodeList.getLength()]; kurs_sredni = new TextView[nodeList.getLength()]; for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); Element kodElmnt = (Element) node; NodeList kodList = kodElmnt.getElementsByTagName("kod_waluty"); Element kodElement = (Element) kodList.item(0); kodList = kodElement.getChildNodes(); kod_waluty[i].setText(((Node) kodList.item(0)).getNodeValue()); Element kursElmnt = (Element) node; NodeList kursList = kursElmnt.getElementsByTagName("kurs_sredni"); Element kursElement = (Element) kursList.item(0); kodList = kursElement.getChildNodes(); kurs_sredni[i].setText(((Node) kursList.item(0)).getNodeValue()); } } catch (Exception e) { onClick.setText("Blad: " + e); } } Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
kobustm Napisano Styczeń 8, 2015 Autor Zgłoś Udostępnij Napisano Styczeń 8, 2015 Po modyfikacji kodu błąd nie wyskakuje, ale za to pojawia się inny java.lang.NullPointerExceptionDołączam kod: public void onClick(View vv) { new Thread(new Runnable(){ @Override public void run() { try { TextView kod_waluty[]; TextView kurs_sredni[]; try { URL url = new URL("http://www.nbp.pl/kursy/xml/LastA.xml"); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new InputSource(url.openStream())); doc.getDocumentElement().normalize(); NodeList nodeList = doc.getElementsByTagName("pozycja"); kod_waluty = new TextView[nodeList.getLength()]; kurs_sredni = new TextView[nodeList.getLength()]; for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); Element kodElmnt = (Element) node; NodeList kodList = kodElmnt.getElementsByTagName("kod_waluty"); Element kodElement = (Element) kodList.item(0); kodList = kodElement.getChildNodes(); kod_waluty[i].setText(((Node) kodList.item(0)).getNodeValue()); Element kursElmnt = (Element) node; NodeList kursList = kursElmnt.getElementsByTagName("kurs_sredni"); Element kursElement = (Element) kursList.item(0); kodList = kursElement.getChildNodes(); kurs_sredni[i].setText(((Node) kursList.item(0)).getNodeValue()); } } catch (Exception e) { onClick.setText("Blad: " + e); } } catch (Exception ex) { ex.printStackTrace(); } } }).start(); } Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.