2017-06-20 50 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你的支持。 :)