qq_20240417 2014-11-11 16:02
浏览 1680

对于这段图灵机器人调用代码,我不太理解,可以帮帮我么?

主类
enter code here
package zlexample.tuling;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;

public class MainActivity extends ActionBarActivity implements HttpGetDataListener {

private HttpData data;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    data=(HttpData) new HttpData("http://www.tuling123.com/openapi/api?key=cc1dc647bdf0dc4bc7af64edbbda8346&info=+北京", this).execute();
}

@Override
public void getDataUrl(String data) {
    // TODO Auto-generated method stub
    System.out.println(data);   //这里的data和上面new的data一样么(我感觉不一样的,因为httpData类中的listener的调用,给data赋值了么???)?????还有着这里重写这个方法干什么的??
    //莫非是因为定义了接口就必须重写这个方法??接口实际的作用只是限制了data的数据类型??
}

}
另一个类httpData

public class HttpData extends AsyncTask{

private HttpClient httpClient;
private HttpGet httpGet;
private String url;
private HttpResponse httpResponse;
private HttpEntity httpEntity;
private InputStream in;
private HttpGetDataListener listener;
public HttpData(String url,HttpGetDataListener listener) {
    // TODO Auto-generated constructor stub
    this.url=url;
    this.listener=listener;
}
@Override
protected String doInBackground(String... arg0) {
    // TODO Auto-generated method stub
    httpClient=new DefaultHttpClient();
    httpGet=new HttpGet(url);
    try {
        httpResponse=httpClient.execute(httpGet);
        httpEntity=httpResponse.getEntity();
        in=httpEntity.getContent();
        BufferedReader buReader=new BufferedReader(new InputStreamReader(in));
        String line=null;
        StringBuffer stringBuffer = new StringBuffer();
        while ((line=buReader.readLine())!=null) {
            stringBuffer.append(line);
        }
        return stringBuffer.toString();
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    return null;
}
@Override
protected void onPostExecute(String result) {
    // TODO Auto-generated method stub
    listener.getDataUrl(result);
    super.onPostExecute(result);

}

}
定义的一个接口
package zlexample.tuling;

public interface HttpGetDataListener {
void getDataUrl(String data);
}

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 有没有帮写代码做实验仿真的
    • ¥15 報錯:Person is not mapped,如何解決?
    • ¥30 vmware exsi重置后登不上
    • ¥15 c++头文件不能识别CDialog
    • ¥15 Excel发现不可读取的内容
    • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
    • ¥20 yolov5自定义Prune报错,如何解决?