Первый раз отправляется get запрос, 2 раз нет

220
24 апреля 2017, 02:20
    public interface OAuthServerIntf {
    @GET("drive/v2/files")
    Call<GDriveFiles> listFiles1(
        @Query("q") String q
    );
    }

Вот, где обрабатывается запрос и при выборе элемента в списке снова запускается с новым параметром q:

    private void listGDriveUserFiles(String q){
    OAuthServerIntf server=RetrofitBuilder.getOAuthClient(this);
    Call<GDriveFiles> listFilesCall=server.listFiles(q);
    listFilesCall.enqueue(new Callback<GDriveFiles>() {
        @Override
        public void onResponse(Call<GDriveFiles> call, Response<GDriveFiles> response) {
            Log.e(TAG,"The call listFilesCall succeed with [code="+response.code()+" and has body = "+response.body()+" and message = "+response.message()+" ]");
            //ok we have the list of files on GDrive
            if(response.code()==200&&response.body()!=null){
                // txvResult.setText(response.body().toString());
                for (GDriveFile file : response.body().getFiles()) {
                    // txvResult.setText(txvResult.getText()+file.getName()+" ");
                    gdriveFiles.add(file);
                }
                adapter = new Data_Adapter(context, R.layout.list_item, gdriveFiles);
                txvResult.setAdapter(adapter);
                txvResult.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        GDriveFile selectedItem = gdriveFiles.get(position);
                        listGDriveUserFiles(selectedItem.getId());
                    }
                });

            }else if(response.code()==400){
            }else if(response.code()==401){
            }else if(response.code()==403){
            }else if(response.code()==404){
            }
        }
        @Override
        public void onFailure(Call<GDriveFiles> call, Throwable t) {
            Log.e(TAG,"The call listFilesCall failed",t);
        }
    });
}

В первый раз запрос обрабатывается, а второй раз проходит Callback метод и выходит полностью из метода. Используется GOOGLE API. В чем причина?

Answer 1

Метод, в принципе, работает . Нужно очищать gdriveFiles перед заполнение в него данными. Тогда все будет наглядно видно.

Встречный вопрос: как лучше организовать проход по папкам Гугл драйв? Сделать для этого стэк и записывать в него id предыдущей папки, от которой был осуществлён переход. Или есть какой-то более эффективный способ?

READ ALSO
Как изменить значение в Firebase

Как изменить значение в Firebase

Как изменить значение child-a в firebase?

427
Ошибка при взятии скриншота элемента

Ошибка при взятии скриншота элемента

ЗдравствуйтеНа сайте понадобилось заскринить каптчу, причем со страницы именно её

263
В чём разница между &#171;import java.util.*&#187; и &#171;import java.util.Scanner&#187;

В чём разница между «import java.util.*» и «import java.util.Scanner»

Вместо Scanner может быть что угодно - суть яснаА именно: зачем использовать второй вариант, если первый и набирать короче, и пригодится когда...

224
Макет портфолио [требует правки]

Макет портфолио [требует правки]

Подскажите пожалуйста где можно найти бесплатные psd макеты для сайта портфолио (верстальщик)?

229