Boa tarde irmãos,
Tenho um list e um lisAdapter que cria automaticamente campos de formulário pegando informações do banco. Até aí tudo bem.
O problema que ao criar o botão de cadastrar ele está criando vários botões.
Como faço para criar este botão uma única vez?
Desde já obrigado pela força pessoal.
Seguem os dados
Meu Controller
package br.com.mylims.controller;
import java.util.List;
import br.com.mylims.model.ColetaDao;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import br.com.mylims.bean.Info;
public class CadastroColetaController extends ListActivity{
private static final String CATEGORIA = "coleta";
private static ColetaDao coletaDao;
private List<Info> infoBean;
public void onCreate(Bundle icicle){
super.onCreate(icicle);
coletaDao = new ColetaDao(this);
Bundle extras = getIntent().getExtras();
String idAmostra = extras.getString("idAmostra");
Log.i(CATEGORIA, "idamostra: " + idAmostra);
infoBean = coletaDao.listaColeta(idAmostra);
setListAdapter(new ColetaAdapter(this, infoBean));
}
}
Meu Adapter
package br.com.mylims.controller;
import java.util.List;
import java.util.logging.Logger;
import org.w3c.dom.Text;
import br.com.mylims.R;
import br.com.mylims.bean.Info;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TextView;
public class ColetaAdapter extends BaseAdapter{
private Context context;
private List<Info> lista;
private static final String CATEGORIA = "coleta";
public ColetaAdapter(Context context, List<Info> lista) {
super();
this.context = context;
this.lista = lista;
}
@Override
public int getCount() {
return lista.size();
}
@Override
public Object getItem(int position) {
return lista.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Info infoBean = lista.get(position);
LinearLayout linearLayout = new LinearLayout(context);
linearLayout.setOrientation(LinearLayout.VERTICAL);
/**RECUPERA O ID DO TIPODADO**/
int recuperaTipoDado = infoBean.getCodTipoDado();
/**RECUPERA O CDINFO**/
int recuperaIdInfo = infoBean.getCodInfo();
TextView nomeInfoTipo1 = new TextView(context);
TextView nomeInfoTipo2 = new TextView(context);
TextView nomeInfoTipo3 = new TextView(context);
TextView nomeInfoTipo4 = new TextView(context);
TextView nomeInfoTipo5 = new TextView(context);
EditText editText = new EditText(context); /**CAMPO DO TIPO TEXTO QUE RECEBERA OS SEGUINTES CAMPOS (1-TEXTO, 2-NUMERICO, 3-NUMERICO FRACIONARIO, 4-DATA E HORA)**/
EditText texto = new EditText(context); /**CAMPO DO TIPO TEXTO**/
EditText numerico = new EditText(context); /**CAMPO DO TIPO NUMERICO**/
EditText numericoFracionario = new EditText(context); /**CAMPO DO TIPO NUMERICO FRACIONARIO**/
EditText dataHora = new EditText(context); /**CAMPO DO TIPO **/
/**CAMPOS DO TIPO ESCOLHA**/
RadioGroup escolha = new RadioGroup(context); /**CAMPO DO TIPO ESCOLHA**/
RadioButton sim = new RadioButton(context); /**CAMPO DO TIPO ESCOLHA - RESPOSTA SIM**/
RadioButton nao = new RadioButton(context); /**CAMPO DO TIPO ESCOLHA - RESPOSTA NAO**/
/**FORMATA OS CAMPOS**/
/**CAMPO TEXTO**/
texto.setWidth(50);
/**CAMPO NUMERICO**/
numerico.setWidth(50);
/**CAMPO NUMERICO FRACIONARIO**/
numericoFracionario.setWidth(50);
/**CAMPO DATA E HORA**/
dataHora.setWidth(50);
switch (recuperaTipoDado) {
case 1:
nomeInfoTipo1.setText(infoBean.getNomeInfo());
linearLayout.addView(nomeInfoTipo1);
editText = texto;
editText.setText("");
editText.setHeight(40);
editText.setInputType(android.text.InputType.TYPE_CLASS_TEXT);
editText.setId(recuperaIdInfo);
linearLayout.addView(editText);
Log.i(CATEGORIA, "ID INFO: " + recuperaIdInfo);
break;
case 2:
nomeInfoTipo2.setText(infoBean.getNomeInfo());
linearLayout.addView(nomeInfoTipo2);
editText = numerico;
editText.setText("");
editText.setHeight(40);
editText.setInputType(android.text.InputType.TYPE_CLASS_NUMBER);
editText.setId(recuperaIdInfo);
linearLayout.addView(editText);
Log.i(CATEGORIA, "ID INFO: " + recuperaIdInfo);
break;
case 3:
nomeInfoTipo3.setText(infoBean.getNomeInfo());
linearLayout.addView(nomeInfoTipo3);
editText = numericoFracionario;
editText.setText("");
editText.setHeight(40);
editText.setInputType(android.text.InputType.TYPE_NUMBER_FLAG_DECIMAL);
editText.setId(recuperaIdInfo);
linearLayout.addView(editText);
Log.i(CATEGORIA, "ID INFO: " + recuperaIdInfo);
break;
case 4:
nomeInfoTipo4.setText(infoBean.getNomeInfo());
linearLayout.addView(nomeInfoTipo4);
editText = dataHora;
editText.setText("");
editText.setHeight(40);
editText.setInputType(android.text.InputType.TYPE_CLASS_DATETIME);
editText.setId(recuperaIdInfo);
linearLayout.addView(editText);
Log.i(CATEGORIA, "ID INFO: " + recuperaIdInfo);
break;
case 5:
nomeInfoTipo5.setText(infoBean.getNomeInfo());
linearLayout.addView(nomeInfoTipo5);
sim.setText("Sim");
nao.setText("Não");
escolha.addView(sim);
escolha.addView(nao);
linearLayout.addView(escolha);
Log.i(CATEGORIA, "ID INFO: " + recuperaIdInfo);
break;
}
Button b = new Button(context);
b.setText("CADASTRAR");
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
linearLayout.addView(b);
return linearLayout;
}
}