Java 将网页文本放入文本视图(Android)

Java 将网页文本放入文本视图(Android),java,android,html,Java,Android,Html,我想在安卓3.0上把网页上的文本放到文本视图中。我有以下代码: public class Biografie extends Activity { private TextView outtext; private String HTML; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

我想在安卓3.0上把网页上的文本放到文本视图中。我有以下代码:

public class Biografie extends Activity {
    private TextView outtext;
    private String HTML;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_biografie);

        outtext= (TextView) findViewById(R.id.textview1); 

        try { 
        getHTML();
    } catch (Exception e) {
        e.printStackTrace();
    }       
    outtext.setText("" + HTML);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.biografie, menu);
        return true;
    }

    private void getHTML() throws ClientProtocolException, IOException 

    {
        HttpClient httpClient = new DefaultHttpClient();
        HttpContext localContext = new BasicHttpContext();
        HttpGet httpGet = new HttpGet("http://artistone.appone.nl/api/biografie.php?dataid=998"); //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;
        }

    }

}
我的文本视图返回“null”,而不是页面中的文本。请帮我把这个修好。谢谢。请将代码更改为:

while ((line = reader.readLine()) != null) {
    result += line + "\n";
}
HTML = result;
试试这个:
outtext.setText(Html.fromHtml(Html))


而不是在主线程中执行网络操作,我建议您在单独的线程中使用
AsyncTask

执行此操作,问题是您得到的是
NetworkOnMainThreadException
这是因为您正在主线程(活动的线程)上下载网络内容

相反,您需要使用后台线程来下载该内容,或者使用异步任务

解决此问题的简单代码:

    final Handler handler = new Handler();
    Thread thread = new Thread() {
        public void run() {
            try {
                getHTML();
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        outtext.setText("" + HTML);

                    }
                });
            } catch (Exception e) {
                e.printStackTrace();
                    handler.post(new Runnable() {
                    @Override
                    public void run() {
                        outtext.setText(e.toString());

                    }
            }
        }
    };
thread.start(); // I forgot to start the thread. sorry !
而不是:

    try { 
           getHTML();
    } catch (Exception e) {
        e.printStackTrace();
     }       
    outtext.setText("" + HTML);

另外,请看一看关于android线程的教程:

当我这样做时,应用程序崩溃了。在getHtml()方法中,虽然有很多错误,但我想我把代码放错地方了?你能给我看看完整的新代码吗?谢谢你!您是否从getHTML获得异常?你测试的目标设备是什么?我在安卓4.0.2桌面上测试,对不起,我没有启动线程。。。请检查代码,现在它应该显示的东西,在任何费用