您的位置:首页 > 其它

Volley的使用

2015-10-29 20:36 267 查看
一.简单的StringRequest的使用


1.需要请求队列,我把它写在Applicatio中.并且提供将请求对象添加到队列中的方法

</pre><span style="white-space:pre">		</span><pre name="code" class="java">/**
 * Created by admin on 2015/10/29.
 */
public class App extends Application{
    static RequestQueue requestQueue;
    @Override
    public void onCreate() {
        super.onCreate();
        requestQueue = Volley.newRequestQueue(this);
    }

    /**
     * 将一个Volley请求添加到请求队列
     * @param request
     */
    public static void addQueue(Request request){
        if (request != null){
            requestQueue.add(request);
        }
    }
}


2.实例化请求对象

public static void getData(Response.Listener listener,Response.ErrorListener errorListener,String path){
        StringRequest request = new StringRequest(Request.Method.GET, path, listener, errorListener);
        request.setTag(listener);
        App.addQueue(request);
    }
3.请求网络,在这里让Activity实现了Volley的请求主要是因为在实现方法中可以调用全局的控件对象。

public class VolleyActivity extends Activity implements Response.Listener,Response.ErrorListener {
    @Bind(R.id.tv_content)
    TextView text;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.volley_layout);
        ButterKnife.bind(this);
}
    @OnClick(R.id.load)
    public void load(View view){
        HttpUtil.getData(this,this,"http://www.baidu.com");
    }
    @Override
    public void onErrorResponse(VolleyError volleyError) {
        Toast.makeText(this,"网络请求错误",Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onResponse(Object o) {
        if (o instanceof String ){
            String data = (String) o;
            text.setText(data);
        }else{
            Toast.makeText(this,"数据解析错误",Toast.LENGTH_SHORT).show();
        }
    }
}
最后结果,如图所示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: