如何从网页中提取文本并在TextView中显示它

时间:2011-06-25 19:41:04

标签: android url textview

我想从此网址中提取文字:http://www.weather.noaa.gov/pub/data/observations/metar/stations/KORD.txt,将其保存为字符串,然后在TextView中打印该字符串。

我是android的完全新手,最有效的方法是什么?

2 个答案:

答案 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 以允许使用互联网。