问题描述
- 初学android菜鸟的一个小小的问题,求解答
-
先上代码吧public class MainActivity extends ListActivity {
Button update_btn=null;
private static final String url="http://192.168.191.1:8080/mp3/resources.xml";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
update_btn=(Button)findViewById(R.id.update_btn);
update_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new MyThread().start();
}
});
}
class MyThread extends Thread{
public void run(){
StringBuffer sb = new StringBuffer();
String line;
try {
URL urlStr = new URL(url);
HttpURLConnection urlConn = (HttpURLConnection) urlStr.openConnection();
BufferedReader buffer = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
while ((line = buffer.readLine()) != null) {sb.append(line);}
buffer.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String xml=sb.toString();
Log.v("xxx","xml:"+xml);
}
}
}为什么log中xml:是没有的,好麻烦
解决方案
没有创建Message 对象封装结果,没有创建Handler,他的作用是将消息结果发送给主线程
解决方案二:
主线程没有接收到你创建的线程的内容...
解决方案三:
先调试 MyThread,看看整个http过程是否产生了错误
解决方案四:
这样试试,也可以参考一下volley请求网络.
Toast.makeText(xml,Toast.LENGTH_SHORT).show();
volley使用:
http://www.kwstu.com/ArticleView/kwstu_20144118313429
解决方案五:
这个地址是你自己搭的服务器吧?你先看看在浏览器中能不能访问