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 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
    • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
    • ¥15 onvif+openssl,vs2022编译openssl64
    • ¥15 iOS 自定义输入法-第三方输入法
    • ¥15 很想要一个很好的答案或提示
    • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
    • ¥15 怀疑手机被监控,请问怎么解决和防止
    • ¥15 Qt下使用tcp获取数据的详细操作