Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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
Android 将带有对象数组的JSON对象添加到列表视图_Android_Json_Android Layout_Listview_Android Volley - Fatal编程技术网

Android 将带有对象数组的JSON对象添加到列表视图

Android 将带有对象数组的JSON对象添加到列表视图,android,json,android-layout,listview,android-volley,Android,Json,Android Layout,Listview,Android Volley,我有以下JSON: { "user_wallets": [ { "user_id": "56", "wallet_id": "25", "wallet_name": "Dandora Youth Voucher", "balance": "1,150.00" }, { "user_id": "56",

我有以下JSON:

{
    "user_wallets": [
        {
            "user_id": "56",
            "wallet_id": "25",
            "wallet_name": "Dandora Youth Voucher",
            "balance": "1,150.00"
        },
        {
            "user_id": "56",
            "wallet_id": "36",
            "wallet_name": "Pfizer Chama",
            "balance": "0.00"
        },
        {
            "user_id": "56",
            "wallet_id": "37",
            "wallet_name": "Sunshine",
            "balance": "1,000.00"
        }
    ]
}
我想将
钱包\u名称
余额
添加到如下列表视图:

wallet_name       balance
wallet_name       balance
wallet_name       balance
@Override
public void onErrorResponse(VolleyError error) {
    if(error.networkResponse.data!=null) {
        try {
            body = new String(error.networkResponse.data,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}
等等。但是,我使用volley库对我的api进行http调用,但响应显示为空的Toast消息

我哪里会错呢

我打的电话是:

public void getMyWallets(){
    final JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET,
            url, null, new Response.Listener<JSONObject>() {

        @Override
        public void onResponse(JSONObject response) {
            try{
                JSONArray user_wallets = response.getJSONArray("user_wallets");

                for(int i = 0; i<user_wallets.length();i++){
                    JSONObject wallet = user_wallets.getJSONObject(i);

                    WalletModel walletModel = new WalletModel();
                    walletModel.setWallet_name(wallet.getString("wallet_name"));
                    walletModel.setBalance(((Number) wallet.get("balance")).doubleValue());

                    walletModelList.add(walletModel);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            walletListAdapter.notifyDataSetChanged();
        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(getApplicationContext(),
                    error.getMessage(), Toast.LENGTH_SHORT).show();
            hidepDialog();
        }

    });
    MyApplication.getInstance().addToRequestQueue(jsonObjReq);


}
public void getMyWallet(){
final JsonObjectRequest JSONObjectReq=新的JsonObjectRequest(Request.Method.GET,
url,null,新响应。侦听器(){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
JSONArray user_wallets=response.getJSONArray(“user_wallets”);

对于(int i=0;i在
截击错误中有一个
网络响应
引用,请查看它并查看是否获得任何有用的信息,以便了解错误的位置

大概是这样的:

wallet_name       balance
wallet_name       balance
wallet_name       balance
@Override
public void onErrorResponse(VolleyError error) {
    if(error.networkResponse.data!=null) {
        try {
            body = new String(error.networkResponse.data,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}

所以我发现代码没有问题。问题是截击请求超时: 退房 并且,我通过这样做解决了我的空列表问题:

RequestQueue mRequestQueue = Volley.newRequestQueue(getApplicationContext());

MyApplication.getInstance().addToRequestQueue(jsonObjReq);
    int socketTimeout = 15000;//30 seconds - change to what you want
    RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
    jsonObjReq.setRetryPolicy(policy);
    mRequestQueue.add(jsonObjReq);

这为要获取的数据增加了更多请求超时:)

请出示您的日志,我使用的是Android Studio 1.4,似乎找不到日志:|主机java.io.IOException中的软件中止了已建立的连接。异常:主机sun.nio.ch.SocketDispatcher.write0中的软件中止了已建立的连接(本机方法)在sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)在sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94)在sun.nio.ch.socketChannelImpel.write(IOUtil.java:65)在sun.nio.ch.SocketChannelImpl.write(socketChannelImpel.java:450)在com.android.ddmlib.JdwpPacket.writeAndConsume(jdwppack.java:213)在…[长文本]我用Toast试过了,它是空的。至于日志,我似乎没有把它们作为1.4