Bom dia irmãos.
Preciso de forma urgente criar uma tela que carrega os campos de um formulário dinamicamente.
Exemplo:
Se meus dados vindo do banco for do tipo 1, aparece um botão
Se for do tipo 2 aparece um EditText
Alguém consegue me dar uma força?
Preciso fazer isto em 3 horas.
Abs
Oi eliangela,
Desculpe pela demora em lhe responder. Estou muito atolado.
Conseguir criar o formulário.
O único problema agora é a criação do botão que não aceita a minha intent.
Tem como colocar uma Activity em uma classe contendo BaseAdapter?
Segue meu código
package br.com.mylims.controller;
import java.util.List;
import br.com.mylims.bean.Info;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
public class ColetaAdapter extends BaseAdapter{
//ColetaDao coletaDao = new ColetaDao(context);
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);
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);
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);
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);
break;
case 5:
nomeInfoTipo5.setText(infoBean.getNomeInfo());
linearLayout.addView(nomeInfoTipo5);
sim.setText("Sim");
nao.setText("Não");
escolha.addView(sim);
escolha.addView(nao);
escolha.setId(recuperaIdInfo);
linearLayout.addView(escolha);
break;
}
if (position == getCount() - 1) {
LinearLayout linearLayout2 = new LinearLayout(context);
linearLayout2.setOrientation(LinearLayout.HORIZONTAL);
Button botaoCadastrar = new Button(context);
botaoCadastrar.setText("CADASTRAR");
linearLayout2.addView(botaoCadastrar);
Button botalVoltar = new Button(context);
botalVoltar.setText("VOLTAR");
linearLayout2.addView(botalVoltar);
botaoCadastrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i(CATEGORIA, "teste btn cadastrar");
}
});
botalVoltar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// telaListaAmostra();
Log.i(CATEGORIA, "teste btn voltar");
}
});
linearLayout.addView(linearLayout2);
}
return linearLayout;
}
}
Att.