如何从网站上获取数据/文本并通过文本视图,列表视图等在我的Android应用程序中输入?

时间:2011-12-19 16:08:49

标签: android data-binding html-content-extraction textreader

我试图通过阅读网站来创建一个页面自动创建文本的应用程序?

我理解一个数组将被使用和字符串格式化,我很好用android编程但不是专家大声笑。

我曾尝试使用本网站上的一组编码,但我认为这只是为了在线阅读文本文件:

private TextView outtext;
private String HTML;

@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 ClientProtocolException, IOException 

{
    HttpClient httpClient = new DefaultHttpClient();
    HttpContext localContext = new BasicHttpContext();
    HttpGet httpGet = new HttpGet("http://www.bbc.co.uk/news/"); //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;
    }

}

}

我尝试使用bbc.co.uk/news/作为例子。我的应用上的文字视图返回'null'。

希望有人可以帮助我,提前谢谢。

1 个答案:

答案 0 :(得分:0)

看起来像

HTML = result;

应该在while循环之外吗?

然后我怀疑在设置TextView值时将填充HTML。您需要在线程中处理HTML请求,然后使用处理程序将结果发布到UI:

Handler Class API

private final Handler handler = new Handler();

new Thread()
{
    @Override
    public void run()
    {
        getHTML();
        handler.post( updateResults );
    }
}.start();


final Runnable updateResults = new Runnable()
{
    @Override
    public void run()
    {
        updateUi();
    }
};

private void updateUi()
{
    outtext.setText( "" + HTML );
}