【问题标题】:Why code is not showing the List in the spinner that call with API?为什么代码没有在使用 API 调用的微调器中显示列表?
【发布时间】:2022-11-09 05:55:30
【问题描述】:

有一个从 API 传递的字符串数组。代码有什么问题? 我正在尝试将该值传递给微调器

     Call<List<ResponseSubject>> 
  subjectOption=ApiClient.getInstance().getApi().subjectOption();
        subjectOption.enqueue(new Callback<List<ResponseSubject>>() {
            @Override
            public void onResponse(Call<List<ResponseSubject>> call, Response<List<ResponseSubject>> response) {

                List<ResponseSubject> responseSubject=  response.body();
            if(responseSubject!=null && responseSubject.size()>0) {

                String[] sub = new String[responseSubject.size()];

                for (int i = 0; i < responseSubject.size(); i++) {
                    sub[i]= Arrays.toString(responseSubject.get(i).getData());

                    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item,sub);
                    spin_class.setAdapter(adapter);

                    spin_class.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                        @Override
                        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {


                        }

                        @Override
                        public void onNothingSelected(AdapterView<?> adapterView) {

                        }
                    });


                }
            }


        }

        @Override
        public void onFailure(Call<List<ResponseSubject>> call, Throwable t) {

        }
    });

在上面的代码中,它正在检查来自 API 的值是否为空。在检查数据是否在数组中传递并且该数组数据被分配给微调器之后。

【问题讨论】:

    标签: java api retrofit spinner android-arrayadapter


    【解决方案1】:

    我认为这部分应该不在循环中:

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item,sub);
                        spin_class.setAdapter(adapter);
    
                        spin_class.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                            @Override
                            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
    
    
                            }
    
                            @Override
                            public void onNothingSelected(AdapterView<?> adapterView) {
    
                            }
                        });
    

    最终代码应如下所示:

    Call<List<ResponseSubject>> 
      subjectOption=ApiClient.getInstance().getApi().subjectOption();
            subjectOption.enqueue(new Callback<List<ResponseSubject>>() {
                @Override
                public void onResponse(Call<List<ResponseSubject>> call, Response<List<ResponseSubject>> response) {
    
                    List<ResponseSubject> responseSubject=  response.body();
                if(responseSubject!=null && responseSubject.size()>0) {
    
                    String[] sub = new String[responseSubject.size()];
    
                    for (int i = 0; i < responseSubject.size(); i++) {
                        sub[i]= Arrays.toString(responseSubject.get(i).getData());
    
    
                    }
                }
    
                        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item,sub);
                        spin_class.setAdapter(adapter);
    
                        spin_class.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                            @Override
                            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
    
    
                            }
    
                            @Override
                            public void onNothingSelected(AdapterView<?> adapterView) {
    
                            }
                        });
    
    
            }
    
            @Override
            public void onFailure(Call<List<ResponseSubject>> call, Throwable t) {
    
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-29
      • 2017-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-29
      • 2022-08-05
      相关资源
      最近更新 更多