不从服务器读取文本

时间:2012-06-07 11:36:26

标签: java android android-layout android-intent

我正在尝试从服务器读取所有文本,我认为我的代码不是从服务器检索文本,请你帮我解决这个问题,我是android开发的新手。提前致谢

public class TestActivity extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    TextView tv= (TextView)findViewById(R.id.my_text);


                try {

                    URL url = new URL("http://www.google.com:80/");
                    StringBuilder content = new StringBuilder();
                    // read text returned by server

                    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
                    String line;
                    while ((line = in.readLine()) != null) {
                        content.append(line +"\n");
                    }
                    tv.setText(content.toString());
                    setContentView(tv);

                    in.close();
                }

                catch (MalformedURLException e) {

                    System.out.println("Malformed URL: " + e.getMessage());

                }

                catch (IOException e) {

                    System.out.println("I/O Error: " + e.getMessage());

                }


};        


}

2 个答案:

答案 0 :(得分:0)

采取这些行

tv.setText(line);
setContentView(tv);

out while while循环

在while循环中使用StringBuilder对象(在循环之前声明)并在其中附加字符串。 while循环后从StringBuilder获取字符串并执行tv.setText(string)

答案 1 :(得分:0)

可能你可以尝试这样,只是一个想法:

StringBuilder content = new StringBuilder();
                // read text returned by server
                BufferedReader in = new BufferedReader(new InputStreamReader(new URL("http://www.google.com:80/").openConnection().getInputStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    content.append(line +"\n");
                }

tv.setText(content.toString());
setContentView(tv);