2013-06-08 3 views
0

Я как бы новичок в разработке Android и в настоящее время для своего «первого проекта» я сделал приложение, в котором хранилась школьная школьная школа (только для моих одноклассников). Теперь я хочу расширить это и заставить приложение подключиться к Интернету и взять scheudele, который хранится на веб-сайте, чтобы приложение могло использоваться всей школой.Я хочу, чтобы мое приложение собирало информацию с веб-сайта

Это ссылка на всей моей школе scheudele: http://www.s-stps.tb.edus.si/dijaki/urniki.html

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

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

+0

вы можете «скачать» расписание как xml, json или ical? –

ответ

1

Вы можете загрузить эту страницу и проанализировать содержимое html. Загрузка страницы должно быть легко, дать вам пример:

import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.HttpResponse; 
import org.apache.http.HttpStatus; 

String url = "http://www.whatever.com"; 
String html = ""; 

HttpClient httpclient = new DefaultHttpClient(); 
request = new HttpGet(new URI(url)); 
HttpResponse response = httpclient.execute(request); 
StatusLine statusLine = response.getStatusLine(); 
if (statusLine.getStatusCode() == HttpStatus.SC_OK) { 
    ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    response.getEntity().writeTo(out); 
    out.close(); 
    html = out.toString(); 
} 

Это не может быть запущен на главном потоке, так что вам нужно, чтобы запустить его с AsyncTask или исполняемую.
Для синтаксического анализа вы можете использовать JSoup. Проблема здесь не в использовании JSoup, потому что это довольно просто, но вместо этого расшифруйте структуру документа. Здесь HelloWorld с JSoup:

String html = "<html><head></head><body><p>asdasd1</p><p>asdasd2</p></body></html>"; 

Document doc = Jsoup.parse(html); 
Elements p = doc.select("p"); 

for(int i=0;i<p.size();i++){ 
    Log.i("p",p.get(i).text()); 
} 
+0

Спасибо, я попробую! Нужно ли добавлять какие-либо разрешения для этого? Например, разрешение на подключение к Интернету? –

+0

о да! извините забыл упомянуть, я ищу пример jsoup ^^ – lelloman

+0

Удивительный, я все еще не понимаю, но с практикой приходит знание: P Спасибо :) –

0

Если вы можете скачать расписание в формате JSON взглянуть на this учебник. Если вы можете скачать его в xml, посмотрите на это Android Training

Смежные вопросы