首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加从ArrayList对象解码的数据后,JSon仍然是空的。

添加从ArrayList对象解码的数据后,JSon仍然是空的。
EN

Stack Overflow用户
提问于 2022-07-31 09:43:41
回答 1查看 78关注 0票数 -1

我在Android中有这个java代码,当我创建新的专业并打印m.getName()时。它们被打印出来,数据被正确地从Json对象中解码出来,但是在将数据添加到ArrayList majorsArrayList之后,它仍然是空的,并且没有添加数据。

在这里,我检查了ArrayList (在onCreate()中),结果是: ARRAYLIST[]

代码语言:javascript
复制
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        RecyclerView recyclerView=(RecyclerView) findViewById(R.id.recyclerViewMajors);
        getmajors("Al-Kafaat University","Faculty of Pedagogy","faculty","en");
        System.out.println("ARRAYLIST"+majorsArrayList);
        recycler_majorAdapter recyclerMajorAdapter=new recycler_majorAdapter(this,majorsArrayList);
        recyclerView.setAdapter(recyclerMajorAdapter);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        System.out.println("ARRAYLIST"+majorsArrayList);}

下面是getmajors()函数

代码语言:javascript
复制
private void getmajors(String uni, String faculty, String dest, String lang)
{
    StringRequest stringRequest=new StringRequest(Request.Method.GET, "https://...", new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            try {
                JSONArray opp =new JSONArray(response);
                for (int i = 0; i< opp.length(); i++)
                {
                    JSONObject pollObject= opp.getJSONObject(i);
                    String major=pollObject.getString("maj");
                    String university=pollObject.getString("univ");
                    int id=pollObject.getInt("id");
                    Majors m=new Majors(major,university, id);
                    System.out.println(m.getName());
                    System.out.println(m.getUniversity());
                    System.out.println(m.getId());
                    majorsArrayList.add(m);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(MainActivity.this,error.getMessage(),Toast.LENGTH_LONG).show();
        }
    });
    Volley.newRequestQueue(this).add(stringRequest);
}
EN

回答 1

Stack Overflow用户

发布于 2022-07-31 10:09:28

修正了,只是在onCreate()中添加了两行:

代码语言:javascript
复制
recycler_majorAdapter recyclerMajorAdapter=new recycler_majorAdapter(this,majorsArrayList);
recyclerView.setAdapter(recyclerMajorAdapter);

函数到for循环之后的getmajors()函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73182191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档