当前位置: 代码迷 >> Android >> ,为什么同样代码,位置不一样效果不一样
  详细解决方案

,为什么同样代码,位置不一样效果不一样

热度:98   发布时间:2016-05-01 21:34:25.0
求助,为什么同样代码,位置不一样效果不一样?
刚学android 一个关于TextView的知识。代码如下:
Java code
public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        try        {            StringBuffer sb = new StringBuffer();            String url = "http://10.0.2.2:8080/JSON_server/JSONDemoServlet";            String body = getContent(url);            JSONArray array = new JSONArray(body);            for (int i = 0; i < array.length(); i++)            {                JSONObject obj = array.getJSONObject(i);                sb.append("id:").append(obj.getInt("id")).append("\t");                sb.append("name:").append(obj.getString("name")).append("\r\n");                sb.append("gender:").append(obj.getString("gender")).append("\t");                sb.append("email:").append(obj.getString("email")).append("\r\n");                sb.append("----------------------\r\n");            }            TextView textView = (TextView) findViewById(R.id.textView);            textView.setText("Hello");        } catch (Exception e){}


为什么textView.setText放这里,就无法设置textView的内容。运行效果如下图

textView的text内容并没改变。如果把TextView textView = (TextView) findViewById(R.id.textView);textView.setText("Hello");这两行代码放到setContentView(R.layout.main);后面就可以改变text的内容。这是为什么?

------解决方案--------------------
一般不应该在oncreate 之类的函数中做耗时太长的操作的。
估计是时间太长,系统让计算停止了。
放到线程中做网络和解析操作吧。
------解决方案--------------------
探讨

引用:

setContentView(R.layout.main)未设之前,根本就不知道R.id.textView为何物

findViewById(R.id.textView);textView.setText("Hello");
必须放在setContentView(R.layout.main)后面

------解决方案--------------------
请参考
http://blog.csdn.net/mylzc/article/details/6736988
  相关解决方案