مشکل در گرفتن تعداد آیتم های بیشتر از 10 در volly

پرسیده شده
فعالیت 1499 روز پیش
دیده شده 865 بار
1

سلام خدمت استاد عزیز

من موقع نمایش اطلاعات دریافتی از api تو recyclerview یک مشکلی دارم اونم اینه که اگر تعداد آیتم های دریافتی رو بیشتر از ۱۰ کنم(منظورم اینه که تعداد مثلا مقالات دریافتی رو در لینک api تغییر میدم)...مطالب در لیست نمایش داده نمیشن...

در صورتی که وقتی لینک رو به صورت مستقیم تو مرورگر باز می کنم هیچ مشکلی نداره ...

با این لینک ۱۰ مقاله سایت دریافت میشن

https://bartarleather.com/wp-json/wp/v۲/posts?_embed

اما با این لینک (که پست های موجود در فایل json به ۱۵ تا  میرسن)دریافت نمیشن

https://bartarleather.com/wp-json/wp/v۲/posts?_embed&page=۱&per_page=۱۵


به نظرتون باید چه کار کرد؟

فایل پیوست

یوسف محمدیانی
یوسف محمدیانی

7 فروردین 99

1
حذف شده

سلام یوسف جان 

ایا دستی تعداد ایتم ها رو 10 میدین؟

یا با استفاده از listArray.length(); یا listArray,size(); تعداد ایتم ها رو به متد getItemCount میدین؟

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

7 فروردین 99

حذف شده
سلام پوریاجان بله با متد size() تعداد رو به array میدم
یوسف محمدیانی

7 فروردین 99

حذف شده
بسیار عالی تنها راه حل که به ذهنم رسید این بود پس باید مشکل سرویس باشه احتمالا که بهتره استاد جواب بدن
پوریا شفیعی

7 فروردین 99

حذف شده
سلام، ربطی به RecyclerView نداره ببینید اصلا response ی که میگیرین درست هست یا خیر اگر نبود به دنبال حلش باشید اما اگر درست بود وقتی داخل Adapter مقادیر رو دریافت میکنید اینجا هم درسته یا نه ؟همینجوری مرحله به مرحله بررسی کنید تا bugه پیدا بشه
مهرداد

7 فروردین 99

1
حذف شده

خیلی ممنون از راهنماییتون آقا مهرداد و آقا پوریا عزیز

خداروشکر مشکل برطرف شد

 

بله من ارور response رو چک نکرده بودم...یک از key های آرایه json در بعضی از item ها مقدار داشت و در بعضی از item ها نداشت که با تعریف یک شرط تونستم مشکل رو برطرف کنم...

 

final StringRequest stringRequest = new StringRequest(Request.Method.GET,
                "https://ahmadansari.com/wp-json/wp/v2/posts?_embed&page=1&per_page=80",
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        avi.hide();

                        try {
                            JSONArray jsonArray = new JSONArray(response);
                            List<Post> posts = new ArrayList<>();
                            for (int i = 0; i < jsonArray.length(); i++) {
                                JSONObject postItem = jsonArray.getJSONObject(i);
                                Post post = new Post();
                                post.setTitle(postItem.getJSONObject("title").getString("rendered"));
                                post.setContent(postItem.getJSONObject("excerpt").getString("rendered"));
                                post.setFullContent(postItem.getJSONObject("content").getString("rendered"));
                                post.setDate(postItem.getString("date"));
                                post.setCategory(postItem.getJSONObject("_embedded").getJSONArray("wp:term").getJSONArray(0).getJSONObject(0).getString("name"));
                                post.setAuthor(postItem.getJSONObject("_embedded").getJSONArray("author").getJSONObject(0).getString("name"));

                              
  JSONObject imageData = postItem.getJSONObject("_embedded");
//شرط رو به این صورت تعریف کردم!
                                if (imageData.has("wp:featuredmedia")){
                                    post.setImgURl(
                                            postItem.getJSONObject("_embedded")
                                                    .getJSONArray("wp:featuredmedia")
                                                    .getJSONObject(0)
                                                    .getJSONObject("media_details")
                                                    .getJSONObject("sizes")
                                                    .getJSONObject("thumbnail")
                                                    .getString("source_url")
                                    );
                                    post.setImageRulMain(
                                            postItem.getJSONObject("_embedded")
                                                    .getJSONArray("wp:featuredmedia")
                                                    .getJSONObject(0)
                                                    .getJSONObject("media_details")
                                                    .getJSONObject("sizes")
                                                    .getJSONObject("full")
                                                    .getString("source_url")
                                    );
                                }
                                post.setIdPost(postItem.getInt("id"));
                                posts.add(post);
                            }

                            RecyclerView recyclerView = findViewById(R.id.wrapperPostList);
                            recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this, RecyclerView.VERTICAL, false));
                            recyclerView.setAdapter(new PostListAdapter(posts));
                            Log.i(TAG, "onResponse: "+response);
                        } catch (JSONException e) {
                            e.printStackTrace();
                            Toast.makeText(MainActivity.this, "امکان اتصال وجود ندارد!", Toast.LENGTH_SHORT).show();
                            btnRefresh.setVisibility(View.VISIBLE);
                            Log.i(TAG, "onCatch: "+e.toString());
                        }

                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

                avi.hide();
                Toast.makeText(MainActivity.this, "امکان اتصال وجود ندارد!", Toast.LENGTH_SHORT).show();
                Log.e(TAG, "onErrorResponse: " + error.toString());
                btnRefresh.setVisibility(View.VISIBLE);
                Log.i(TAG, "onErrorResponseMessage: "+error.toString());

            }
        });
        final RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);

 

فایل پیوست

یوسف محمدیانی

توسط

یوسف محمدیانی

8 فروردین 99