Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-使用截图显示自定义列表视图(使用http请求发送标题)_Java_Android_Listview_Android Volley - Fatal编程技术网

Java Android-使用截图显示自定义列表视图(使用http请求发送标题)

Java Android-使用截图显示自定义列表视图(使用http请求发送标题),java,android,listview,android-volley,Java,Android,Listview,Android Volley,我对android开发有点陌生,我正在尝试使用Volley库创建一个自定义listview,其中包含图像列表和每个图像的文本描述。 我需要知道的是如何使用头发出HTTP请求,以便服务器允许我获取数据。 我的代码如下所示: MainActivity.java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView

我对android开发有点陌生,我正在尝试使用Volley库创建一个自定义listview,其中包含图像列表和每个图像的文本描述。 我需要知道的是如何使用头发出HTTP请求,以便服务器允许我获取数据。 我的代码如下所示: MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    listView = (ListView) findViewById(R.id.list);
    adapter = new CustomListAdapter(this, restaurantList);
    listView.setAdapter(adapter);

    pDialog = new ProgressDialog(this);
    // Showing progress dialog before making http request
    pDialog.setMessage("Loading...");
    pDialog.show();

    // changing action bar color
    getActionBar().setBackgroundDrawable(
            new ColorDrawable(Color.parseColor("#1b1b1b")));

    // Creating volley request obj
    JsonArrayRequest restaurantReq = new JsonArrayRequest(url,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    Log.d(TAG, response.toString());
                    hidePDialog();
                    JSONObject obj = null;
                    // Parsing json
                    for (int i = 0; i < response.length(); i++) {
                        try {
                            obj = response.getJSONObject(i);
                            Restaurant restaurant = new Restaurant();
                            restaurant.setID(obj.getString("id"));
                            restaurant.setName(obj.getString("name"));
                            restaurant.setDescription(obj
                                    .getString("description"));
                            restaurant.setType(obj.getString("type"));
                            restaurant.setCategory(obj
                                    .getString("category"));
                            restaurant.setPicture(obj.getString("picture"));
                            restaurant.setLongitude(obj
                                    .getString("longitude"));
                            restaurant.setLatitude(obj
                                    .getString("latitudes"));


                        }

                        catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }
                    try {
                        Log.e("TAGGGGGGGGG", obj.getString("description"));
                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                    // notifying list adapter about data changes
                    // so that it renders the list view with updated data
                    adapter.notifyDataSetChanged();
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.d(TAG, "Error: " + error.getMessage());
                    hidePDialog();

                }

                public Map<String, String> getHeaders()
                        throws AuthFailureError {
                    HashMap<String, String> headers = new HashMap<String, String>();
                    headers.put("ghfhfhfhfgh", "fghfhfghf");
                    headers.put("fgfghfhf", "fghfhf");
                    headers.put("gfhfghfghfghfgh", "fghfg/fghfghfhfgh");
                    return headers;
                }
            });

    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(restaurantReq);
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(listView)findViewById(R.id.list);
adapter=新的CustomListAdapter(此,restaurantList);
setAdapter(适配器);
pDialog=新建进度对话框(此对话框);
//在发出http请求之前显示进度对话框
设置消息(“加载…”);
pDialog.show();
//更改操作栏颜色
getActionBar().setBackgroundDrawable(
新的可着色(Color.parseColor(#1b1b1b”);
//创建截击请求对象
JsonArrayRequest restaurantReq=新的JsonArrayRequest(url,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
Log.d(TAG,response.toString());
hidePDialog();
JSONObject对象j=null;
//解析json
对于(int i=0;i
},新的响应。ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
e(“Error:,Error.toString());
}
}){//添加这个
@凌驾
公共映射getHeaders()引发AuthFailureError{
Map headers=newhashmap();
标题。放置(“xxx”,xxx);
返回标题;
}
};

在getHeaders()中,您已经设置了标题!?也不要发布你的api密钥。很抱歉发生了错误。我在eclipse中收到一条消息“类型New response.ErrorListener(){的方法getHeaders从不在本地使用”,并且我没有得到任何数据。E/Volley(10750):[1]2.onErrorResponse:Error:类型New response.ErrorListener()的方法getHeaders(){必须重写或实现超类型方法快速修复:删除'@override'注释是否删除了最后一个)?我忘了删除最后一个,现在一切正常。现在我没有收到服务器的响应,所以我试图检查发生了什么。还有一个问题:我的JSON数据如下所示,我想我应该替换JsonArrayRequest RestarantReq和JSONObjectRequestRestaurantreq对吗?如果是,新代码应该是什么样子的?JSON:{Data:[…26]}
        }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.e("Error: ", error.toString());
                }
        }) {  // Add this

        @Override           
        public Map<String, String> getHeaders() throws AuthFailureError {
               Map<String, String> headers = new HashMap<String, String>();
               headers.put("xxx", xxx);
               return headers;
            }
       };