2017-06-20 37 views
0

我有一个问题,我的微调。我的微调选择时没有任何价值。我不知道该怎么做,因为我已经应用了很多答案,并且对我的代码没有任何影响。

这是我的代码。我正在使用retrofit2。Android - 微调器没有得到任何选定的值

private List<String> listKotaNegara= new GetData().getListKota(); 

    spinnerJenisKamar = (Spinner) findViewById(R.id.spinnerHotelJenisKamar); 
      dataAdapterJenisKamar = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, listJenisKamar); 
      dataAdapterJenisKamar.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      spinnerJenisKamar.setAdapter(dataAdapterJenisKamar); 

      spinnerJenisKamar.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
       @Override 
       public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
        String item = parent.getSelectedItem().toString(); 
        Toast.makeText(parent.getContext(), "Selected: "+item, Toast.LENGTH_LONG).show(); 
       } 

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

       } 
      }); 

这是我从服务器获取数据的方式。

public List<String> getListKota(){ 
    apiservice.getListKota("liskota").enqueue(new Callback<ListKotaResponse>() { 

     @Override 
     public void onResponse(Call<ListKotaResponse> call, Response<ListKotaResponse> response) { 
      System.out.println("syalala : "+response.body()+", Response code; "+response.code()+", Response msg: "+response.message()); 
      final ListKotaResponse responses = response.body(); 
      List<ListNegara> listNegaras = responses.getListNegara(); 
      if(responses.getResult().equalsIgnoreCase("OK")) 
      { 
       System.out.println("masuk if"); 

       for(ListNegara n: listNegaras) 
       { 
        for(ListKotum k: n.getListKota()) { 
         listKotaNegara.add(k.getKota()+", "+n.getNegara()); 
        } 
       } 
      } 
     } 

     @Override 
     public void onFailure(Call<ListKotaResponse> call, Throwable t) { 
      Log.i("fail ",t.getMessage()); 
     } 
    }); 
    return listKotaNegara; 
} 

非常感谢你“)

+0

是否执行Toast.makeText?但项目为空或在选择项目时不执行? –

+0

你确定清单listKotaNegara不是空的吗? getListKota方法是异步调用,此时列表可能为空。在onResponse方法中设置适配器。 – Praveen

+0

@BrankVictoria吐司没有执行......完全没有......也没有任何空白。 –

回答

0

如果您的列表不是空的,所以这样的事情:

 private List<String> listKotaNegara= new GetData().getListKota(); 

     spinnerJenisKamar = (Spinner) findViewById(R.id.spinnerHotelJenisKamar); 
     dataAdapterJenisKamar = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, listJenisKamar); 
     dataAdapterJenisKamar.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinnerJenisKamar.setAdapter(dataAdapterJenisKamar); 

     spinnerJenisKamar.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       String item = listJenisKamar.get(position); 
       Toast.makeText(parent.getContext(), "Selected: "+item, Toast.LENGTH_LONG).show(); 
      } 

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

      } 
     }); 

我希望这将有助于

+0

我都试过了,butnothing发生... THX B4 –

0

我发现我必须在Callback Retrofit 2中的onResponse中写入ArrayAdapter代码。

k你的支持。 :)