【问题标题】:JSON object to JSON Array to Arraylist to ArraydapterJSON 对象到 JSON 数组到 Arraylist 到 Arraydapter
【发布时间】:2016-11-22 15:18:57
【问题描述】:

我想问一下如何显示我的数组列表,我从我的虚拟主机数据库中获取数据并将其传递给 JSON 对象,然后我使用 JSON 数组将我的对象作为数组,然后我将它传递给 ArrayList显示我得到的所有数据,如果我打印 ArrayList 的输出,这就是我得到的......

I/System.out: {"checkdate":"Oct 31, 2016","checkno":"123","datepaid":"Oct 31, 2016","clientname":"naruto","bank":"bdo","amount":"100","status":"UNFINISHED"}
I/System.out: {"checkdate":"Oct 31, 2016","checkno":"123","datepaid":"Oct 31, 2016","clientname":"naruto","bank":"bdo","amount":"100","status":"UNFINISHED"}
I/System.out: {"checkdate":"Oct 31, 2016","checkno":"123","datepaid":"Oct 31, 2016","clientname":"naruto","bank":"bdo","amount":"100","status":"UNFINISHED"}
I/System.out: {"checkdate":"Oct 31, 2016","checkno":"123","datepaid":"Oct 31, 2016","clientname":"naruto","bank":"bdo","amount":"100","status":"UNFINISHED"}
I/System.out: {"checkdate":"Oct 31, 2016","checkno":"123","datepaid":"Oct 31, 2016","clientname":"naruto","bank":"bdo","amount":"100","status":"UNFINISHED"}
I/System.out: {"checkdate":"Oct 31, 2016","checkno":"123","datepaid":"Oct 31, 2016","clientname":"naruto","bank":"bdo","amount":"100","status":"UNFINISHED"}
I/System.out: {"checkdate":"qwe","checkno":"123","datepaid":"qwe","clientname":"qwe","bank":"qwe","amount":"123","status":"UNFINISHED"}
I/System.out: {"checkdate":"Nov 5, 2016","checkno":"1400056800","datepaid":"Nov 6, 2016","clientname":"Gelli Espiritu","bank":"BDO","amount":"123","status":"UNFINISHED"}
I/System.out: {"checkdate":"Nov 5, 2016","checkno":"1400458800","datepaid":"Nov 5, 2016","clientname":"qwerty","bank":"east west","amount":"123","status":"UNFINISHED"}
I/System.out: {"checkdate":"Nov 5, 2016","checkno":"1400458800","datepaid":"Nov 5, 2016","clientname":"qwerty","bank":"east west","amount":"123","status":"UNFINISHED"}
I/System.out: {"checkdate":"Nov 6, 2016","checkno":"123456789","datepaid":"Nov 8, 2016","clientname":"Naruto","bank":"MAYBANK","amount":"123456789","status":"UNFINISHED"}
I/System.out: {"checkdate":"January 17, 2016","checkno":"13554400","datepaid":"January 20, 2016","clientname":"Mark Sample","bank":"BPI","amount":"100000","status":"UNFINISHED"}
I/System.out: {"checkdate":"January 17, 2016","checkno":"13554400","datepaid":"January 20, 2016","clientname":"Mark Sample","bank":"BPI","amount":"100000","status":"UNFINISHED"}
I/System.out: {"checkdate":"Nov 6, 2016","checkno":"1401234","datepaid":"Nov 6, 2016","clientname":"GELLI gumana ka","bank":"BPI","amount":"1234","status":"UNFINISHED"}
I/System.out: {"checkdate":"March 7, 2016","checkno":"98671278","datepaid":"March 10, 2016","clientname":"Ben Sample","bank":"LANDBANK","amount":"2147483647","status":"UNFINISHED"}
I/System.out: {"checkdate":"Dec 9, 2016","checkno":"98678968","datepaid":"Dec 30, 2016","clientname":"John Sample","bank":"CHINABANK","amount":"92745","status":"UNFINISHED"}
I/System.out: {"checkdate":"Nov 8, 2016","checkno":"87976","datepaid":"Nov 4, 2016","clientname":"GWEN SAMPLE","bank":"UNION BANK","amount":"6789","status":"UNFINISHED"}
I/System.out: {"checkdate":"Nov 3, 2016","checkno":"897657","datepaid":"Nov 26, 2016","clientname":"Donald Sample","bank":"BANK","amount":"98797","status":"UNFINISHED"}
I/System.out: {"checkdate":"Nov 30, 2016","checkno":"12564","datepaid":"Dec 3, 2016","clientname":"Ronald Sample","bank":"GM bank","amount":"10120","status":"UNFINISHED"}
I/System.out: {"checkdate":"Dec 1, 2016","checkno":"123456","datepaid":"Dec 4, 2016","clientname":"Jolly Sample","bank":"china bank","amount":"12345","status":"UNFINISHED"}
I/System.out: {"checkdate":"..Dec 2, 2016","checkno":"132456","datepaid":"Dec 5, 2016","clientname":"Bet Sample","bank":"land bank","amount":"1451","status":"UNFINISHED"}
I/System.out: {"checkdate":"..Dec 4, 2016","checkno":"145623","datepaid":"Dec 6, 2016","clientname":"Aileen Sample","bank":"land bank","amount":"123445","status":"UNFINISHED"}
I/System.out: {"checkdate":"..Dec 7, 2016","checkno":"145656","datepaid":"Dec 9, 2016","clientname":"Joyce Sample","bank":"land bank","amount":"323445","status":"UNFINISHED"}
I/System.out: {"checkdate":"..Dec 7, 2016","checkno":"145656","datepaid":"Dec 9, 2016","clientname":"Joyce Sample","bank":"land bank","amount":"323445","status":"UNFINISHED"}
I/System.out: {"checkdate":"..Dec 8, 2016","checkno":"165623","datepaid":"Dec 10, 2016","clientname":"Joy Sample","bank":"land bank","amount":"4523445","status":"UNFINISHED"}
I/System.out: {"checkdate":"..Dec 9, 2016","checkno":"6445623","datepaid":"Dec 11, 2016","clientname":"jay Sample","bank":"china bank","amount":"4523445","status":"UNFINISHED"}
I/System.out: {"checkdate":"..Dec 10, 2016","checkno":"64456245","datepaid":"Dec 113, 2016","clientname":"Rigor Sample","bank":"BDO","amount":"44523445","status":"UNFINISHED"}
I/System.out: {"checkdate":"..Dec 10, 2016","checkno":"64456245","datepaid":"Dec 113, 2016","clientname":"Rigor Sample","bank":"BDO","amount":"44523445","status":"UNFINISHED"}
I/System.out: {"checkdate":"..Dec 11, 2016","checkno":"456789","datepaid":"Dec 14, 2016","clientname":"Ynna Sample","bank":"BDO","amount":"45123445","status":"UNFINISHED"}
I/System.out: {"checkdate":"..Dec 12, 2016","checkno":"9814156","datepaid":"Dec 15, 2016","clientname":"Francheka Sample","bank":"China bank","amount":"41523445","status":"UNFINISHED"}

我使用了片段,这是片段

RecordFragment.java

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;

public class RecordFragment extends Fragment implements Response.Listener<String> {
    private ArrayAdapter<String> arrayAdapter;
    private ArrayList<String> listdata = new ArrayList<>();

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.activity_record, container, false);
        ListView lvCheck = (ListView) v.findViewById(R.id.lvCheck);
        arrayAdapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, listdata);
        lvCheck.setAdapter(arrayAdapter);
        return v;
    }

public void onAttach(Context context) {
           super.onAttach(context);
           String url = "http://samplechecker.site88.net/Request.php";
           StringRequest stringRequest = new StringRequest(url, this, new  Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getContext(), "Error while reading data", Toast.LENGTH_SHORT).show();
            }
        });

        MySingleton.getInstance(getContext()).addToRequestQueue(stringRequest);

    }


    @Override
    public void onResponse(String response) {


        try {


            JSONObject jsonResponse = new JSONObject(response);
            JSONArray arr = jsonResponse.getJSONArray("message");
            boolean success = jsonResponse.getBoolean("success");


            for (int i = 0; i < arr.length(); i++) {
                JSONObject json_object = arr.getJSONObject(i);
                String checkno = json_object.getString("checkno");
                String clientname = json_object.getString("clientname");
                String bank = json_object.getString("bank");
                String datepaid = json_object.getString("datepaid");
            }


            if(success){
                System.out.println(response);


                if (arr != null) {
                    for (int i=0;i<arr.length();i++){
                        listdata.add(arr.get(i).toString());

                        System.out.println(listdata.get(i));
                    }




                }



            }
            System.out.println("SUCCESS");




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

    }


}

这是我的 XML

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">


    <ListView
        android:id="@+id/lvCheck"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

【问题讨论】:

    标签: java android arrays json arraylist


    【解决方案1】:

    在您的 onCreateView() 中,在将 listdata 变量提供给适配器之前对其进行初始化:

    listdata = new ArrayList<String>();
    

    将响应数据添加到 ArrayList 后,通知适配器此更改:

    if(success) {
        System.out.println(response);
        if (arr != null) {
            for (int i=0;i<arr.length();i++){
                listdata.add(arr.get(i).toString());
                System.out.println(listdata.get(i));
            }
        }
        arrayAdapter.notifyDataSetChanged();
    }
    

    【讨论】:

    • 非常感谢 :) 你帮了我很多 :)
    • 现在我只需要分配值对吗?到一个文本视图?使其正确显示数据
    • 不客气 :) 要包含所有字段,您必须创建一个自定义适配器和模型对象。参考androidhive.info/2012/02/…
    • 再次感谢 :) 我几乎用了 3 天的时间来展示这些数据哈哈哈
    猜你喜欢
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 2018-01-24
    • 2015-09-27
    • 2011-01-10
    • 2015-02-22
    相关资源
    最近更新 更多