我是 Android 开发方面的新手,目前对于我的“第一个项目”,我制作了一个应用程序,其中为我的学校存储了学校时间表(仅适用于我的同学)。现在我想扩展它,使应用程序连接到互联网并获取网站上存储的 scheudele,以便整个学校都可以使用该应用程序。
这是我整个学校时间表的链接:http://www.s-stps.tb.edus.si/dijaki/urniki.html
它是用我的母语编写的,所以你不会真正理解任何内容,但正如你所看到的,表格上方有 3 个不同的下拉菜单,这就是我希望我的应用程序具有的功能。一个下拉菜单,您可以在其中选择您所在的类(class),然后应用程序将连接到互联网并获取该类(class)的时间表并显示它,甚至可能下载它,这样就不需要进一步的互联网连接。
我知道我要求很多,对于不太了解 Android 编程的人来说,这将很难做到,但我有 2 个月的假期来做这件事,所以我会尝试一下。我将非常感谢一些有用的指导,以及关于如何开始这样做的建议。
最佳答案
您可以下载页面并解析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 或 runnable 来运行它。
对于解析,您可以使用 JSoup 。这里的问题不是使用 JSoup 本身,因为它很容易,而是破坏了文档结构。
这里是 JSoup 的 helloworld:
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());
}
关于java - 我想让我的应用程序从网站收集信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17001672/