sim é o correto mesmo.
Olha só me diga se estou errado ou faço certo, no salvar, eu checo alguns campos se estão preenchido, eu faço o seguinte:
if (campoRazaoSocial.getText().toString().equals("")) {
Toast.makeText(this, "A Razão Social deve ser informada!", Toast.LENGTH_SHORT).show();
valida = false;
}
Outra dúvida que acredito não ter a melhor solução é em relação aos Spinner.
Quando se tem o valor sendo buscado na base de dados eu faço de um jeito, mas quando é fixa os valores eu fiz assim:
String[] tipoPessoas = {"FISICA", "JURIDICA"};
campoSpinnerTipoPessoa = (Spinner) findViewById(R.id.cli_e_tipopessoa);
ArrayAdapter<String> arrayAdapterTipoPessoa = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, tipoPessoas);
campoSpinnerTipoPessoa.setAdapter(arrayAdapterTipoPessoa);
posicaoSpinner = arrayAdapterTipoPessoa.getPosition("JURIDICA");
campoSpinnerTipoPessoa.setSelection(posicaoSpinner);
Até aqui tranquilo, porém ao salvar no banco de dados eu faço desta forma para que pegue um caracter especial e não o texto completo.
switch(campoSpinnerTipoPessoa.getSelectedItemPosition()) {
case 0: tipoPessoa = "F"; break;
case 1: tipoPessoa = "J"; break;
}
O problema é que possuo outro spinner com mais de 2 opções, alguns passando de 10 opções. dai qual existiria alguma forma mais correta de se fazer isto?
Obrigado pelas Dicas
Evandro Choma
Não só melhor como a correta! ;)Usar == em vez de equals com strings não é correto. Veja porque abaixo:Até maisAtt.
Guilherme Sjlender
------------------------------------------------------------
Desenvolvedor Web - Flex3.6/Flex4.5/JavaEEDesenvolvedor Desktop - AIR/JavaSEDesenvolvedor Mobile - Android/JavaME/Flex4.5------------------------------------------------------------
Em 23 de julho de 2012 15:00, Evandro Choma <evandrochoma@gmail.com> escreveu:Olhigado Guilherme
esta solução aparentemente é melhor do que o c.motivoSuspensao == "F".
--
[]´s
Evandro Choma
Engenheiro da ComputaçãoEm 23 de julho de 2012 14:57, Guilherme Sjlender <guisjlender@gmail.com> escreveu:
Na verdade você não pode fazer equals de algum atributo null, por isso do erro!O que eu costumo fazer é o inverso.Em vez de fazer:c.motivoSuspensao.equals("F")eu faria:"F".equals(c.motivoSuspensao)Dessa forma você não precisa verificar se o c.motivoSuspensao não está null;)Att.
Guilherme Sjlender
------------------------------------------------------------Desenvolvedor Web - Flex3.6/Flex4.5/JavaEEDesenvolvedor Desktop - AIR/JavaSEDesenvolvedor Mobile - Android/JavaME/Flex4.5------------------------------------------------------------
Em 23 de julho de 2012 11:54, Evandro Choma <evandrochoma@gmail.com> escreveu:Obrigado Bernardo Deu certo.
--
[]´s
Evandro Choma
Engenheiro da ComputaçãoEm 23 de julho de 2012 11:43, Bernardo Ferreira e Souza <bernardobfs@gmail.com> escreveu:
Só trocar o equals null por ==..
Deve resolver..On Jul 23, 2012 11:41 AM, "Evandro Choma" <evandrochoma@gmail.com> wrote:Tenho um campo na tabela que seria o motivo de suspensão, ele pode ser preenchido com F - Fiscal, N - Financeiro ou nulo.
Dai para apresentar o campo de tela estou fazendo a seguinte rotina
if (c.motivoSuspensao.equals("F")) {
Log.i("AFV","Suspensão: FISCAL");
campoMotivoSuspensao.setText("FISCAL");
} else {
if (c.motivoSuspensao.equals("N")) {
Log.i("AFV","Suspensão: FINANCEIRA");
campoMotivoSuspensao.setText("FINANCEIRO");
} else {
Log.i("AFV","Suspensão: nullo");
campoMotivoSuspensao.setText("");
}
}
Modifiquei a rotina para começar assim, if (c.motivoSuspensao.equals(null)) { mas o erro continua o mesmo:
Mas está dando erro nos registros onde o campo está preenchido como null, nos outros passa normalmente. o erro do log cat está em anexo






0 comentários:
Postar um comentário