Pessoal nao sei se é o caso, mas acho que terei de usar reflection. O problema é que nao sei bem como funciona.
É o seguinte, nos deparamos com uma linha de código legal como esta
this.produto.setCodigo(Integer.parseInt(this.campoCodigo.getEditableText().toString()));
pega o Objeto produto acessa o metodo setCodigo que aceita um int.
Para ter o código que o usuario inseriu na view precisa acessar o campoCodigo com o metodo para pegar um texto com o getEditableText e depois converter para String.
Depois de tudo isso voce ve que o metodo setCodigo aceita um int entao voce faz um parse.
ok…
tem como fazer assim?
this.produto.setCodigo(Integer.parseInt(converteValorCampoParaString(nomeDoCampo)));
converteValorCampoParaString(nomeDoCampo){
//identificar o tipo de objeto que esta vindo da tela, se é TextView ou se é um Rating e assim por diante
//saber quais os metodos que tal tipo de Objeto tem, pois um rating nao deve ter getEditableText para voce receber os valores.
//criar uma variavel com o tipo do campo para receber o valor.
//Retornar uma string
}
Se isso der certo, só preciso falar que preciso converter para int antes de chamar o metodo que vai retornar a String.
fiz ± assim
private String converteViewToString(Object campo){
String resultado="";
campo.getEditableText().toString();
return resultado;
}
parei na parte de nao saber oque o campo vai ser… pois ele pode ser um Edit ou um Rating… e agora?