Android 如何从JSONObject请求中获取ArrayList

Android 如何从JSONObject请求中获取ArrayList,android,json,android-volley,Android,Json,Android Volley,如何从JSONObject请求中获取ArrayList 我试过界面,但不起作用。二传手和接球手都不行。我使用的是回收视图 这是我的密码 public class EditDoctor extends Fragment { RecyclerView recyclerView; String key; String url; RecyclerAdapterEditDoctor edit; SharedPreferences sharedPreferences;

如何从
JSONObject
请求中获取
ArrayList

我试过界面,但不起作用。二传手和接球手都不行。我使用的是
回收视图

这是我的密码

public class EditDoctor extends Fragment {
    RecyclerView recyclerView;
    String key;
    String url;
    RecyclerAdapterEditDoctor edit;
    SharedPreferences sharedPreferences;
    RequestQueue queue;
    ArrayList<EditDoctorModel> listOfPojo = new ArrayList<>();

    public EditDoctor()
    {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstaneState)
    {
        View view = inflater.inflate(R.layout.editdoctor,container,false);
        Context context = getActivity();
        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
        key = sharedPreferences.getString("key", "");

        return view;
    }

    @Override
    public void onViewCreated(View view,Bundle savedInstanceState) {
        setRetainInstance(true);

    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        recyclerView = (RecyclerView) getActivity().findViewById(R.id.recycler1);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(linearLayoutManager);
        queue = Volley.newRequestQueue(getActivity());
        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
        key  = sharedPreferences.getString("key", "");
        url = "http://192.168.0.153:9091/drrate/api/profile/Search?page=1&size=10&filter=[{\"col\":\"MemberKey\",\"val\":\""+key+"\",\"cond\":\"Equal\"}]";
        getJSONRequest();
        edit = new RecyclerAdapterEditDoctor(getActivity(),listOfPojo);
        recyclerView.setAdapter(edit);

    }

    // This is the Request 
    public void getJSONRequest() {

        JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET, url,
            new Response.Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject response) {
                ArrayList<EditDoctorModel>temp = new ArrayList<>();
                try {
                    JSONArray Jarray = response.getJSONArray("Data");
                    for (int i = 0; i < Jarray.length(); i++) {
                        JSONObject object = Jarray.getJSONObject(i);
                        EditDoctorModel editDoctorModel = new EditDoctorModel();
                        editDoctorModel.setFullName(object.getString("Name"));
                        editDoctorModel.setProfession(object.getString("Profession"));
                        editDoctorModel.setUrl(object.getString("Image"));
                        temp.add(editDoctorModel);
                    }
                    // this work but android monitor says that skipping layout adapter not attached
                    // edit = new RecyclerAdapterEditDoctor(getActivity(),listOfPojo);
                    // recyclerView.setAdapter(edit);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {

           @Override
           public void onErrorResponse(VolleyError error) {

           }
    });
    queue.add(req);
}
公共类EditDoctor扩展片段{
回收视图回收视图;
字符串键;
字符串url;
RecyclerAdapterEditDoctor编辑;
SharedReferences SharedReferences;
请求队列;
ArrayList listOfPojo=新的ArrayList();
公共编辑医生()
{
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、捆绑包保存状态)
{
视图=充气机。充气(R.layout.editdoctor,容器,假);
Context=getActivity();
SharedReferences SharedReferences=PreferenceManager.GetDefaultSharedReferences(上下文);
key=SharedReferences.getString(“key”,即“”);
返回视图;
}
@凌驾
已创建视图上的公共void(视图,捆绑保存状态){
setRetainInstance(真);
}
@凌驾
ActivityCreated上的公共无效(@Nullable Bundle savedinStateCState){
super.onActivityCreated(savedInstanceState);
recyclerView=(recyclerView)getActivity().findViewById(R.id.recycler1);
LinearLayoutManager LinearLayoutManager=新的LinearLayoutManager(getActivity());
linearLayoutManager.setOrientation(linearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
queue=Volley.newRequestQueue(getActivity());
SharedReferences=PreferenceManager.GetDefaultSharedReferences(getActivity());
key=SharedReferences.getString(“key”,即“”);
url=”http://192.168.0.153:9091/drrate/api/profile/Search?page=1&size=10&filter=[{“col\”:“MemberKey\”,“val\”:“+key+”,“cond\”:“Equal\”}];
getJSONRequest();
编辑=新的RecyclerAdapterEditDoctor(getActivity(),listOfPojo);
recyclerView.setAdapter(编辑);
}
//这是请求
public void getJSONRequest(){
JsonObjectRequest req=新的JsonObjectRequest(Request.Method.GET,url,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
ArrayListtemp=新的ArrayList();
试一试{
JSONArray Jarray=response.getJSONArray(“数据”);
for(int i=0;i

请帮助我。提前谢谢。

将您解析的数据添加到dataset
listOfPojo
,然后在适配器上调用
notifyDataSetChanged

试试这个

@Override
public void onResponse(JSONObject response) {
    ArrayList<EditDoctorModel> temp = new ArrayList<>();
    try {
        JSONArray Jarray = response.getJSONArray("Data");
        for (int i = 0; i < Jarray.length(); i++) {
            JSONObject object = Jarray.getJSONObject(i);
            EditDoctorModel editDoctorModel = new EditDoctorModel();
            editDoctorModel.setFullName(object.getString("Name"));
            editDoctorModel.setProfession(object.getString("Profession"));
            editDoctorModel.setUrl(object.getString("Image"));
            temp.add(editDoctorModel);
        }

        // add the data in temp to listOfPojo
        listOfPojo.clear();
        listOfPojo.addAll(temp);

        // notify the adapter that the data has changed
        edit.notifyDataSetChanged();

    } catch (JSONException e) {
        e.printStackTrace();
    }
}
@覆盖
公共void onResponse(JSONObject响应){
ArrayList temp=新的ArrayList();
试一试{
JSONArray Jarray=response.getJSONArray(“数据”);
for(int i=0;i
将已解析的数据添加到dataset
listOfPojo
,然后在适配器上调用
notifyDataSetChanged

试试这个

@Override
public void onResponse(JSONObject response) {
    ArrayList<EditDoctorModel> temp = new ArrayList<>();
    try {
        JSONArray Jarray = response.getJSONArray("Data");
        for (int i = 0; i < Jarray.length(); i++) {
            JSONObject object = Jarray.getJSONObject(i);
            EditDoctorModel editDoctorModel = new EditDoctorModel();
            editDoctorModel.setFullName(object.getString("Name"));
            editDoctorModel.setProfession(object.getString("Profession"));
            editDoctorModel.setUrl(object.getString("Image"));
            temp.add(editDoctorModel);
        }

        // add the data in temp to listOfPojo
        listOfPojo.clear();
        listOfPojo.addAll(temp);

        // notify the adapter that the data has changed
        edit.notifyDataSetChanged();

    } catch (JSONException e) {
        e.printStackTrace();
    }
}
@覆盖
公共void onResponse(JSONObject响应){
ArrayList temp=新的ArrayList();
试一试{
JSONArray Jarray=response.getJSONArray(“数据”);
for(int i=0;i
对代码进行一些更改

public class EditDoctor extends Fragment {
    RecyclerView recyclerView;
    String key;
    String url;
    RecyclerAdapterEditDoctor edit;
    SharedPreferences sharedPreferences;
    RequestQueue queue;
    ArrayList<EditDoctorModel> listOfPojo;

    public EditDoctor()
    {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstaneState)
    {
        View view = inflater.inflate(R.layout.editdoctor,container,false);
        Context context = getActivity();
        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
        key = sharedPreferences.getString("key", "");

        return view;
    }

    @Override
    public void onViewCreated(View view,Bundle savedInstanceState) {
        setRetainInstance(true);

    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        recyclerView = (RecyclerView) getActivity().findViewById(R.id.recycler1);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(linearLayoutManager);
        queue = Volley.newRequestQueue(getActivity());
        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
        key  = sharedPreferences.getString("key", "");
        url = "http://192.168.0.153:9091/drrate/api/profile/Search?page=1&size=10&filter=[{\"col\":\"MemberKey\",\"val\":\""+key+"\",\"cond\":\"Equal\"}]";
        getJSONRequest();
        edit = new RecyclerAdapterEditDoctor(getActivity(),listOfPojo);
        recyclerView.setAdapter(edit);

    }

    // This is the Request 
    public void getJSONRequest() {

        JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET, url,
            new Response.Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject response) {
                listOfPojo = new ArrayList<>();
                try {
                    JSONArray Jarray = response.getJSONArray("Data");
                    for (int i = 0; i < Jarray.length(); i++) {
                        JSONObject object = Jarray.getJSONObject(i);
                        EditDoctorModel editDoctorModel = new EditDoctorModel();
                        editDoctorModel.setFullName(object.getString("Name"));
                        editDoctorModel.setProfession(object.getString("Profession"));
                        editDoctorModel.setUrl(object.getString("Image"));
                        listOfPojo.add(editDoctorModel);
                    }
                    // this work but android monitor says that skipping layout adapter not attached
                    // edit = new RecyclerAdapterEditDoctor(getActivity(),listOfPojo);
                    // recyclerView.setAdapter(edit);
            edit.updateRecyler(listOfPojo);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {

           @Override
           public void onErrorResponse(VolleyError error) {

           }
    });
    queue.add(req);
}
公共类EditDoctor扩展片段{
回收视图回收视图;
字符串键;
字符串url;
RecyclerAdapterEditDoctor编辑;
SharedReferences SharedReferences;
请求队列;
ArrayList-listOfPojo;
公共编辑医生()
{
}
@凌驾
创建视图上的公共视图(平面充气机、ViewGr