1
resposta

Este modelo não ficaria mais simplificado da forma abaixo ?

public class FormularioHelper {


/*    private  final EditText camponome;
/*    private  final EditText campoendereco;
/*    private  final EditText campocidade;
/*    private  final EditText campouf;
/*    private  final EditText campocep;
/*    private  final EditText campofone;
/*    private  final EditText camposite;
/*    private  final RatingBar camponota;
*/
    private  EditText camponome;
    private  EditText campoendereco;
    private  EditText campocidade;
    private  EditText campouf;
    private  EditText campocep;
    private  EditText campofone;
    private  EditText camposite;
    private  RatingBar camponota;

    /*
    public FormularioHelper(FormularioActivity activity){
        camponome     = (EditText) activity.findViewById ( R.id.formulario_nome );
        campoendereco = (EditText) activity.findViewById ( R.id.formulario_endereco );
        campocidade   = (EditText) activity.findViewById ( R.id.formulario_cidade );
        campouf       = (EditText) activity.findViewById ( R.id.formulario_uf );
        campocep      = (EditText) activity.findViewById ( R.id.formulario_cep );
        campofone     = (EditText) activity.findViewById ( R.id.formulario_fone );
        camposite     = (EditText) activity.findViewById ( R.id.formulario_site );
        camponota     = (RatingBar) activity.findViewById ( R.id.formulario_nota );
    }

    public Aluno pegaAluno() {
    */
    public Aluno pegaAluno (FormularioActivity activity) {
        camponome     = (EditText) activity.findViewById ( R.id.formulario_nome );
        campoendereco = (EditText) activity.findViewById ( R.id.formulario_endereco );
        campocidade   = (EditText) activity.findViewById ( R.id.formulario_cidade );
        campouf       = (EditText) activity.findViewById ( R.id.formulario_uf );
        campocep      = (EditText) activity.findViewById ( R.id.formulario_cep );
        campofone     = (EditText) activity.findViewById ( R.id.formulario_fone );
        camposite     = (EditText) activity.findViewById ( R.id.formulario_site );
        camponota     = (RatingBar) activity.findViewById ( R.id.formulario_nota );

        Aluno aluno = new Aluno();
        aluno.setNome (camponome.getText ().toString ());
        aluno.setEndereco (this.campoendereco.getText ().toString ());
        aluno.setCidade (this.campocidade.getText ().toString ());
        aluno.setCep  (this.campocep.getText ().toString () );
        aluno.setUf   (this.campouf.getText ().toString ());
        aluno.setFone (this.campofone.getText ().toString ());
        aluno.setSite (this.camposite.getText ().toString ());
        aluno.setNota (Double.valueOf (this.camponota.getProgress ()));
        return aluno;
    }
}

public class FormularioActivity extends AppCompatActivity {

    private FormularioHelper helper;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate ( savedInstanceState );
        setContentView ( R.layout.activity_formulario );

     /*   helper = new FormularioHelper (this);
    */
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater ();
        inflater.inflate ( R.menu.menu_formulario, menu );

        return super.onCreateOptionsMenu ( menu );
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId ()) {
            case R.id.menu_formulario_ok:

                FormularioHelper helper = new FormularioHelper ();

                Aluno aluno = helper.pegaAluno(this);

                Toast.makeText(FormularioActivity.this, "Gravando " + aluno.getNome (), Toast.LENGTH_SHORT).show();

                finish();
                break;

        }
        return super.onOptionsItemSelected ( item );
    }
}
1 resposta

Fala ai Cesar, de boa ?

Mais para frente usaremos o helper para popular o formulário com o aluno, seguindo sua maneira de pensar, na hora de popular, teríamos que refazer as buscas, ou seja duplicar código, podíamos até isolar as buscas num método, mas seria necessário lembrar de chamar e se vou depender disso, existe uma grande chance de esquecer, por esse motivo colocamos no construtor.