Как получить более 50 результатов (элементов плейлиста) одновременно в youtube api 3 в android studio? - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь получить более 50 результатов из плейлиста. Я пытаюсь с помощью al oop получить аргумент "nextpagetoken" и получить результаты. Но это просто не дает желаемых результатов. Я не знаю, где я ошибаюсь. На самом деле я пытаюсь сделать его динамическим c, поскольку идентификатор списка воспроизведения получен из другого класса, а затем должны быть показаны все результаты. Моя деятельность

        public static String title=null,pgtoken="",tok="",murl="",en="&pageToken=";
    public static String imageurl=null;;
    String playlist_id ="PLS1QulWo1RIbfTjQvTdj8Y6yyq4R7g-Al";` public String passtr = "exoplayer";
    ArrayAdapter arrayAdapter;
    ImageLoader imageLoader;
public Context context = getBaseContext();
    public static Context baseContext;
     TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_exoplayer);
        textView =(TextView)findViewById(R.id.text) ;
        baseContext = getBaseContext();
        recyclerView =(RecyclerView)findViewById(R.id.recycler1);
       arrayList = new ArrayList();
token = new ArrayList();
        ArrayList title=null,imageurl[]=null;
arrayList2 = new ArrayList();
        url = new ArrayList<>();
       mQueue = Volley.newRequestQueue(this);
        jsonParse();
         }
     private void jsonParse() {
      murl = "https://www.googleapis.com/youtube/v3/playlistItems? 
        part=snippet%2CcontentDetails&maxResults=50"+tok+"&playlistId="+playlist_id+"&key="+key;
        url.add(murl);
        j = url.size();
    for(int i =0 ;i<j;i++)
      {
       final int finalI = i;
       JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url.get(i), null,
                    new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                           try {
                                pgtoken = response.getString("nextPageToken");
        if (response.has("nextPageToken")) {
                                    Toast.makeText(getBaseContext(),"reponse found 
 "+url.size(),Toast.LENGTH_SHORT).show();
                                   tok = en + pgtoken;
                                   url.add(murl);
                             }
                      JSONArray jsonArray = response.getJSONArray("items");

                                for (int i = 0; i < jsonArray.length(); i++) {

                                    JSONObject employee = jsonArray.getJSONObject(i);
                                    JSONObject employee2 = employee.getJSONObject("snippet");
                                   employee2.getJSONObject("title");
                                    JSONObject employee3 = employee.getJSONObject("snippet").getJSONObject("thumbnails").getJSONObject("default");
                                    title = employee2.getString("title");
                                    imageurl = employee3.getString("url");

                                    arrayList2.add(imageurl);
                                    arrayList.add(title);  
                           }
                           } catch (JSONException e) {
                                e.printStackTrace();
                            }


                            textView.append(url.get(finalI));

                                   }

                    }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    error.printStackTrace();
                }
            });
    mQueue.add(request);


    recyclerdata();

      }
    }
    public void recyclerdata(){
        youtube_adapter = new Youtube_adapter(arrayList, arrayList2, getApplicationContext(), passtr);

        //     arrayList.add(new Youtube_adapter(title,imageurl,getApplicationContext()));
        GridLayoutManager GridLayoutManager = new GridLayoutManager(getApplicationContext(), 1);

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext());
        recyclerView.setLayoutManager(linearLayoutManager);
        arrayAdapter = new ArrayAdapter(getBaseContext(), android.R.layout.simple_list_item_1, arrayList);

        recyclerView.setAdapter(youtube_adapter);
    }

Я знаю, что этот код может быть не идеальным, поэтому, пожалуйста, предоставьте отдельный код для этого. Заранее спасибо

...