2017-03-17 11 views
0

이 문제와 관련된 질문을 확인하고 제안을 시도했지만 여전히 setOnItemSelectedListener 이벤트를 실행하는 것으로 보이지 않습니다. 내 활동 코드는 다음과 같습니다.Spinner setOnItemSelectedListener가 호출되지 않았습니다.

private void init() { 
     pays = (Spinner) findViewById(R.id.pays_spinner); 
     populatePays(); 
    }  

    List<String> list; 
    public void populatePays(){ 
     list = new ArrayList<String>(); 
     apiService = RestService.createService(SolarAPIService.class); 
     Call<ArrayList<String>> call = apiService.listPays(); 
     call.enqueue(new Callback<ArrayList<String>>() { 
       @Override 
       public void onResponse(Call<ArrayList<String>> call, Response<ArrayList<String>> response) { 
        for(String pays: response.body()) { 
          list.add(pays); 
        } 
        } 

       @Override 
        public void onFailure(Call<ArrayList<String>> call, Throwable t) { 

        } 
       }); 

    ArrayAdapter<String> dataAdapter= new ArrayAdapter<String> 
      (this, android.R.layout.simple_spinner_item, list); 
    dataAdapter.setDropDownViewResource 
      (android.R.layout.simple_spinner_dropdown_item); 
    pays.setAdapter(dataAdapter); 
    pays.setSelection(1); 
    pays.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      nompays=pays.getItemAtPosition(position).toString(); 
      Toast.makeText(getApplicationContext(), 
        "Selected Country : " + nompays, Toast.LENGTH_LONG).show(); 
      populateVille(nompays); 
     } 

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

     } 
    }); 

감사합니다. 감사합니다. 대신

+0

은 데이터로 채워지는 회 전자입니까? – rafsanahmad007

+0

예 내 회 전자에 데이터가 채워집니다. 그저 그 요소를 선택하려고하면 아무 일도 일어나지 않습니다. – MeknessiHamida

답변

0

목록이 채워진 후 스피너 어댑터가 설정되었습니다.

private void init() { 
    pays = (Spinner) findViewById(R.id.pays_spinner); 
    populatePays(); 
} 

List<String> list; 

public void populatePays() { 
    list = new ArrayList<String>(); 
    apiService = RestService.createService(SolarAPIService.class); 
    Call<ArrayList<String>> call = apiService.listPays(); 
    call.enqueue(new Callback<ArrayList<String>>() { 
     @Override 
     public void onResponse(Call<ArrayList<String>> call,     Response<ArrayList<String>> response) { 
      for (String pays : response.body()) { 
       list.add(pays); 
      } 
      setSpinnerAdapter(); 
     } 

     @Override 
     public void onFailure(Call<ArrayList<String>> call, Throwable t) { 

     } 
    }); 

private void setSpinnerAdapter() { 

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String> 
      (this, android.R.layout.simple_spinner_item, list); 
    dataAdapter.setDropDownViewResource 
      (android.R.layout.simple_spinner_dropdown_item); 
    pays.setAdapter(dataAdapter); 
    pays.setSelection(1); 
    pays.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      nompays = pays.getItemAtPosition(position).toString(); 
      Toast.makeText(getApplicationContext(), 
        "Selected Country : " + nompays, Toast.LENGTH_LONG).show(); 
      populateVille(nompays); 
     } 

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

     } 
    }); 
} 
0

:

dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

시도;

pays.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
+0

제안하지 못했습니다. – MeknessiHamida