Avatar
filmer
Člen
Avatar
filmer:

Čaute,
neviem, či to sem môže isť ale je to v podstate Java :D

Mám taký problém, chcem App na Android a to,že z internetu mi bude "sťahovať" data a tie mi ukáže na mobile/tablete.

Našiel som niečo takéto:

import java.net.;
import java.io.
;

public class URLReader {
public static void main(String[] args) throws Exception {

URL oracle = new URL("http://ww­w.oracle.com/");
BufferedReader in = new BufferedReader(
new InputStreamRe­ader(oracle.o­penStream()));

String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.prin­tln(inputLine);
in.close();
}
}

Je to čisto Java app, ktorá funguje do Console mi vypíše celý HTML kód,no ja by som potreboval len určitú časť a vypísať napr. do TextView v Android App.
PLS poraďte ide to ?? A ešte pls majte strpenie s Javou začínam :D :D

Editováno 12.9.2014 16:14
 
Odpovědět 12.9.2014 16:13
Avatar
Odpovídá na filmer
Michal Žůrek (misaz):

1.) jde to, musíš vědět co v tom hledáš a púak to z toho stringu dostat. Můžeš použít regulérní výrazy, substring, ...
2.) nauč se používat funkci vložit zdrojový kód (viz. obr)

Nahoru Odpovědět 12.9.2014 16:26
Nesnáším {}, proto se jim vyhýbám.
Avatar
filmer
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
filmer:

Ok našiel som nejaký kód, konkrétne:

public class Bot {

    public static void main(String[] args) throws IOException {

        BufferedReader buff;
        InputStreamReader inStream;
        String htmlCode = null;
        try{
            URL url = new URL("http://rads.stackoverflow.com/amzn/click/473246031");
            URLConnection urlConnection = (URLConnection)url.openConnection();



            inStream = new InputStreamReader(urlConnection.getInputStream());
            buff = new BufferedReader(inStream);

            while(true){
                if (buff.readLine()!=null){
                    htmlCode += buff.readLine() + "\n";
                }else{
                    break;
                }
            }

            int startFrom = htmlCode.indexOf("<div class=\"zg_rank\">");
            int endFrom = htmlCode.indexOf("</div>");

            String idNumber = htmlCode.substring(startFrom, endFrom);

            System.out.println(idNumber);
        }catch(Exception e){};

    }

}

jediná chýba je že keď dám napr.:

int startFrom = htmlCode.indexOf("<title>");
            int endFrom = htmlCode.indexOf("</title>", startFrom);

Tak toto idem až na to,že mi tam píše <title>[a Text].
No keď chcem vložiť len <div> s class, čo sa používa skoro všade tak to nejde :( (keď dám napr. <div class="nieco"><*b> a koniec <*/b></div>, tak ide)
napr.:

int startFrom = htmlCode.indexOf("<div class=\"uvod\">");
            int endFrom = htmlCode.indexOf("</div>", startFrom);

Tak potom mi tam nič nevypíše.

Síce z časti ale stále to ide len čisto cez Java a nie Android ale šak bolo písané, že to ide spustiť aj na Android (možno s malimi upravami).

Editováno 12.9.2014 17:53
 
Nahoru Odpovědět 12.9.2014 17:52
Avatar
filmer
Člen
Avatar
filmer:

PLS viete poradiť ???

 
Nahoru Odpovědět 13.9.2014 15:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.