我想从此网址中提取文字:http://www.weather.noaa.gov/pub/data/observations/metar/stations/KORD.txt,将其保存为字符串,然后在TextView中打印该字符串。
我是android的完全新手,最有效的方法是什么?
答案 0 :(得分:0)
网址无效,或我的国家/地区被屏蔽
把这个BEFORE放在onCreate():
private TextView outtext;
private String HTML;
并将评论之间的行添加到onCreate中,如下所示:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*FROM HERE*/
outtext= (TextView) findViewById(R.id.textview1); //change id if needed!!!
try {
getHTML();
} catch (Exception e) {
e.printStackTrace();
}
outtext.setText("" + HTML);
/*TO HERE*/
}
现在,这是您用于下载内容的方法:
private void getHTML() throws throws ClientProtocolException, IOException
{
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet("http://www.weather.noaa.gov/pub/data/observations/metar/stations/KORD.txt"); //URL!
HttpResponse response = httpClient.execute(httpGet, localContext);
String result = "";
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = null;
while ((line = reader.readLine()) != null) {
result += line + "\n";
HTML = result;
}
}
您还需要在AndroidManifest.xml中设置权限才能使用互联网:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
这也不是最好的方法。当您打开应用程序时,它会冻结,直到从网站加载,因此您应该使用AsyncTask来帮助您。
答案 1 :(得分:0)
参考this link。
下载WebPageTask 课程就可以解决问题,不要忘记添加
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
到 AndroidManifest.xml 以允许使用互联网。