私はGsonを使ってボレーリクエストをしましたが、スピナーにボレー応答を入力したいと思います。しかしそれはassyncです。Volley with Gson Syncリクエスト
EstadoRequestHelper.statesRequest(Request.Method.GET, EndpointURL.GET_ESTADO, null, new Response.Listener<Estado[]>() {
@Override
public void onResponse(Estado[] response) {
ArrayList<Estado> estadoArrayList = new ArrayList<>();
Estado estado = new Estado();
estado.setId(0);
estado.setDescricao("Selecione um estado");
estadoArrayList.add(estado);
estadoArrayList.addAll(Arrays.asList(response));
estadoAdapter = new EstadoAdapter(getActivity(), R.layout.simple_spinner_dropdown_item, estadoArrayList);
spn_estado.setAdapter(estadoAdapter);
//If i get the spn_estado selection here,
//it works, but i dont want to get it here...
progressDialogEstado.dismiss();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialogEstado.dismiss();
Toast.makeText(getActivity(), "ERRO ESTADO", Toast.LENGTH_LONG).show();
}
});
私はリクエストにspn_estadoを移入した場合、それが付属しています...しかし、私は、要求にそれを移入したくない...
private void veferyUser() {
usuario = UsuarioSingleton.getInstance().getUsuario();
if (usuario == null) {
et_telefone.setVisibility(View.GONE);
et_celular.setVisibility(View.GONE);
et_logradouro.setVisibility(View.GONE);
et_numero.setVisibility(View.GONE);
et_complemento.setVisibility(View.GONE);
et_bairro.setVisibility(View.GONE);
spn_cidade.setVisibility(View.GONE);
spn_estado.setVisibility(View.GONE);
} else {
et_nome.setText(usuario.getNome() != null ? usuario.getNome() : "");
et_cpf.setText(usuario.getCpf() != null ? usuario.getCpf() : "");
et_email.setText(usuario.getEmail() != null ? usuario.getEmail() : "");
et_telefone.setText(usuario.getTelefone() != null ? usuario.getTelefone() : "");
et_celular.setText(usuario.getCelular() != null ? usuario.getCelular() : "");
progressDialogEstado = Util.ProgressDialog(getActivity(), "Carregando Estados", getString(R.string.prompt_aguarde));
requestEstados();
if (usuario.getEndereco() != null) {
et_logradouro.setText(usuario.getEndereco().getLogradouro() != null ? usuario.getEndereco().getComplemento() : "");
et_numero.setText(String.valueOf(usuario.getEndereco().getNumero()));
et_complemento.setText(usuario.getEndereco().getComplemento() != null ? usuario.getEndereco().getComplemento() : "");
et_bairro.setText(usuario.getEndereco().getBairro() != null ? usuario.getEndereco().getBairro() : "");
if (usuario.getEndereco().getCidade() != null) {
spn_cidade.setSelection(usuario.getEndereco().getCidade().getId(), false);
if (usuario.getEndereco().getCidade().getEstado() != null) {
//I want to populate it here.
spn_estado.setSelection(usuario.getEndereco().getCidade().getEstado().getId(), false);
}
}
}
btn_registrar.setText(R.string.action_edit);
}
}
正確に達成したいことは何ですか? asyncがなぜ問題なのですか? – djodjo
他のメソッドに到達すると、アダプタがnullになります...私のspn_estadoスピンナの位置を取得できません –