使用了handler.post进行HTTP的通信,但是怎么点击按钮都没有反应

huangpx 发布于 2016/06/09 16:50
阅读 196
收藏 0
package com.http;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;


import javax.xml.transform.Result;


import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;


import android.app.Activity;
import android.media.ToneGenerator;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;


public class HttpActivity extends Activity
{
    private InputStream is; 
    private TextView tv_xianshi;
    private EditText ed_shuru;
    private Button button;
    private String name;
    public Handler handler;
    public  StringBuffer sb;
    protected void onCreate(Bundle savedInstanceState)
    {
                   super.onCreate(savedInstanceState);
                   setContentView(R.layout.main);
                   tv_xianshi=(TextView)findViewById(R.id.te_xianshi);
                   ed_shuru=(EditText)findViewById(R.id.ed_shuru);
                   button=(Button)findViewById(R.id.button);
                   handler=new Handler();
                   button.setOnClickListener(new OnClickListener() 
                   {
public void onClick(View v) 
{
     new Thread(new Runnable()
             {
                            public void run() 
{
                           
   name=ed_shuru.getText().toString();  
       String urlDate="http://192.168.1.102:8088/webdate/webdate.jsp?name="+name;  
       try {  
         //封装访问服务器的地址  
         URL url=new URL(urlDate);  
       try {  
        //打开对服务器的连接  
     HttpURLConnection conn=(HttpURLConnection) url.openConnection();  
        //连接服务器  
         conn.connect();  
          /**读入服务器数据的过程**/  
       //得到输入流  
        is=conn.getInputStream();  
       //创建包装流  
       BufferedReader br=new BufferedReader(new InputStreamReader(is));  
      //定义String类型用于储存单行数据  
       String line=null;  
      //创建StringBuffer对象用于存储所有数据  
      sb=new StringBuffer();  
   while((line=br.readLine())!=null)
   {  
    sb.append(line);  
   } 
  handler.post(new Runnable()
  {


public void run() {
         tv_xianshi.setText(sb.toString());  

}});

catch (IOException e)
{  
e.printStackTrace();  



}
catch(MalformedURLException e)
{
e.printStackTrace(); 
}
}
 }).start();
}
});
}
}



加载中
0
火文乐武
火文乐武
子线程控制ui,你竟然能运行?编译时怎么通过的?
h
huangpx
3我没出现错误,刚学不是很懂,网上说Andriod提供了几种在其他线程中访问UI线程的方法: Activity.runOnUiThread( Runnable ) View.post( Runnable ) View.postDelayed( Runnable, long ) Hanlder
返回顶部
顶部