Olá, fiquei com uma dúvida, no campo Nota!
Nós criamos este item no objeto na tabela como REAL, manipulamos com double e setamos no campo editText, com o setProgress e ele aceita apenas o valor int. Quando eu insiro uma nota quebrada, ao acessar o aluno, com nota "quebrada", ele me mostra o nota "cheia". Sem a meia estrela.
------------ EDITADO ------------
Rating bar - arquivo xml
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:max="10"
android:numStars="5"
android:id="@+id/formulario_nota"/>
Método preencheFormulario
campoNota.setProgress(aluno.getNota().intValue());
FormularioHelper
public class FormularioHelper {
private final EditText campoNome;
private final EditText campoEndereco;
private final EditText campoTelefone;
private final EditText campoSite;
private final RatingBar campoNota;
private Aluno aluno;
public FormularioHelper(FormularioActivity activity){
campoNome = (EditText) activity.findViewById(R.id.formulario_nome);
campoEndereco = (EditText) activity.findViewById(R.id.formulario_endereco);
campoTelefone = (EditText) activity.findViewById(R.id.formulario_telefone);
campoSite = (EditText) activity.findViewById(R.id.formulario_site);
campoNota = (RatingBar) activity.findViewById(R.id.formulario_nota);
Log.i("Agenda", "FormularioHelper - campoNota: " + campoNota.getProgress());
aluno = new Aluno();
}
public Aluno pegaAluno() {
aluno.setNome(campoNome.getText().toString());
aluno.setEndereco(campoEndereco.getText().toString());
aluno.setTelefone(campoTelefone.getText().toString());
aluno.setSite(campoSite.getText().toString());
aluno.setNota(Double.valueOf(campoNota.getProgress()));
Log.i("Agenda", "pegaAluno - aluno: " + aluno.getNota());
return aluno;
}
public void preencheFormulario(Aluno aluno) {
campoNome.setText(aluno.getNome());
campoEndereco.setText(aluno.getEndereco());
campoTelefone.setText(aluno.getTelefone());
campoSite.setText(aluno.getSite());
campoNota.setProgress(aluno.getNota().intValue());
Log.i("Agenda", "preencheFormulario - campoNota: " + campoNota.getProgress());
this.aluno = aluno;
}
}
Inseri alguns logs, o que acontece é seguinte:
Quando eu insiro 2 estrelas e meia, da escala de 10, a nota em inteiros fica no valor 5. Até aí , tudo ok!
Porém na exibição, mesmo trazendo este valor de 5, na tela do celular, aparecem 3 estrelas. Ao salvar, sem fazer alterações, ele registra o valor de 6.
Anteriormente, pensei que o problema eram os valores quebrados, mas na realidade a exibição dele está incorreta.
Como posso corrigir isto?
Obrigado!