2017-06-20 28 views
0

私のスピナーに問題があります。私のスピナーは選択されても価値がありません。私は非常に多くの答えを適用し、私のコードには何も影響しないので、何をすべきか分からない。

ここに私のコードです。私はretrofit2を使用しています。Android - Spinnerに選択された値がありません

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) { 

       } 
      }); 

これは、サーバーからのGetDataの仕組みです。

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; 
} 

ありがとうございました。私はこれが役立つことを願っています

 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

Toast.makeTextは実行されていますか?しかし、項目を空白にするか、項目を選択しても実行されませんか? –

+0

listKotaNegaraのリストは空ですか? getListKotaメソッドは非同期呼び出しですが、この時点では空になっている可能性があります。 onResponseメソッドでアダプタを設定します。 – Praveen

+0

@BrankVictoriaトーストは実行されません...全くありません...空白もありません。 –

答えて

0

をするので、このような何か。私の解決策。ArrayAdapterコードをCallback Retrofit 2のonResponseの中に記述する必要があります。

よりあなたのサポートのためにあなた。 :)

+0

私は試したが、何も起こらない... thx b4 –

0

を私が発見した:あなたのリストが空でない場合)、「

関連する問題