Estou consumindo meus dados do webservice usando retrofit, porém a activity da problema ao abrir ela:
Código da activity do formulário de cadastro do animal
public class FormAnimalActivity extends AppCompatActivity {
private Spinner spinnerEspecies;
private Spinner spinnerSubEspecies;
private long selectedItemId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_form_animal);
carregaSpinnerEspecieESubEspecie();
spinnerEspecies = findViewById(R.id.spinner_especies);
spinnerSubEspecies = findViewById(R.id.spinner_subEspecies);
}
public void carregaSpinnerEspecieESubEspecie() {
//Fazendo uma call para o retrofit listar as Especies do banco
final Call<List<Especie>> especieCall = new RetrofitInicializador().getEspecieService().listar();
especieCall.enqueue(new Callback<List<Especie>>() {
@Override
public void onResponse(Call<List<Especie>> call, Response<List<Especie>> response) {
//Pegando a lista de espécies no corpo da requisição e colocando um adapter para exibir no spinner
List<Especie> especies = response.body();
ArrayAdapter<Especie> adapter = new ArrayAdapter<Especie> (FormAnimalActivity.this, android.R.layout.simple_list_item_1, especies);
spinnerEspecies.setAdapter(adapter);
//Pegando o id do item selecionado e guardando na variável selectedItemId
selectedItemId = spinnerEspecies.getSelectedItemId();
//Fazendo uma outra call, porém trazendo as *SubEspécies* cujo id da *Espécie* está salvo na variável *selectedItemId*
final Call<List<SubEspecie>> subEspecieCall = new RetrofitInicializador().getEspecieService().listarSubEspecies(selectedItemId);
subEspecieCall.enqueue(new Callback<List<SubEspecie>>() {
@Override
public void onResponse(Call<List<SubEspecie>> call, Response<List<SubEspecie>> response) {
final List<SubEspecie> subEspecies = response.body();
final ArrayAdapter<SubEspecie> adapter = new ArrayAdapter<>(FormAnimalActivity.this, android.R.layout.simple_dropdown_item_1line, subEspecies);
spinnerSubEspecies.setAdapter(adapter);
}
@Override
public void onFailure(Call<List<SubEspecie>> call, Throwable t) {
}
});
}
@Override
public void onFailure(Call<List<Especie>> call, Throwable t) {
}
});
}
}