Form e List - como faço um list ser atualizado como questionario

6 respostas
H

Olá pessoal,

Preciso fazer um questionário (Exemplo 10 questões) onde terá 1 form que mostrará uma Pergunta num label e suas alternativas num List.

Eu sei fazer essa primeira parte, de exibir a 1ª pergunta no label com suas alternativas no List, o que pega é:

" O que posso fazer para passar para a questão 2 ao apertar uma tecla (Exemplo Enter) e atualizar o form fazendo com que o label atualize para a questão 2 e as alternativas devidas alternativas também atualize no List?"

Obs.: O Form apresentará questão por questão.

Podem me falar tanto para JavaSE quanto para JavaME, o que preciso é entender quais componentes tão utilizando para atualizar o form e seus respectivos componentes.

P.S. Fiquei até as 4:50 da madrugada de hoje e tô tenso de desgastado…help please.

Abração e obrigado pela atenção e espero a colaboração de todos.

Att,
Annibal

6 Respostas

dudu_sps

Aonde voce vai guardar as perguntas e as respostas??

quando apertar o botão é só chamar um metodo…

CarregaList();

sendo que o list pegará as opções de resposta para exibir no list

mande seu codigo como está que da pra gente te ajudar :wink:

H

dudu_sps:
Aonde voce vai guardar as perguntas e as respostas??

quando apertar o botão é só chamar um metodo…

CarregaList();

sendo que o list pegará as opções de resposta para exibir no list

mande seu codigo como está que da pra gente te ajudar :wink:

Terei uma class que startará a aplicação , 1 classe Pergunta (int indice, String descricao, ArrayList alternativas), 1 classe Alternativa (int indice, String descricao).

Tipo, quando eu criar um objeto Pergunta,já terei vinculado a ele suas devidas alternativas. Estou utilizando arraylist para armazenar as alternativas.

quando cada pergunta estiver pronta com suas devidas alternativas, irei fazer um arraylist com as perguntas também (ArrayList perguntas).

Se tiver uma alternativa mais aconselhável estarei averiguando.

Aguardo retorno.

Obrigado pela atenção.

Att,
Annibal

dudu_sps

intão ja que voce vai ter um ArrayList com as alternativas e na mesma classe um indice

cada botão continuar voce manda para uma função

MudarPergunta(int indice);

e dentro desta função voce irá puxar a questão do indice e as opção do arraylist que contem essa classe!

acho que fui claro… uahsuashu

H

dudu_sps:
intão ja que voce vai ter um ArrayList com as alternativas e na mesma classe um indice

cada botão continuar voce manda para uma função

MudarPergunta(int indice);

e dentro desta função voce irá puxar a questão do indice e as opção do arraylist que contem essa classe!

acho que fui claro… uahsuashu

E aí dudu, blz?

Tenho um metodo (gerarQuestao(indice)) que gera um objeto questao (inice,descricao,alternativas[]) e em seguida pego a alternativas[] e preencho o list.

Tenho um botão Próxima Questão e outro Questão Anterior…

Estou tentando atualizar o list e label do form com o evento dos botoes chamando o método gerarQuestao(indice) e aqui está onde eu não estou conseguindo pegar o indice da ultima questão que foi carregada.

Entendeu?

Obrigado pela ajuda.

Abraço e aguardo reforço.

Att,
Annibal

dudu_sps

manda seu codigo ai pra gente ver como está

H

Olá Dudu,

Segue abaixo o código com os métodos e estrutura mais importantes da aplicação:

public class Main implements Applet {

    public void start() {
        init();
        setupTheme();
        Form fNorth = buildUINorth();

        fNorth.show();
    }

   public void setupTheme() {
   ...
   }


    public Form buildUINorth() {
   	final Form fNorth = new Form("Hello LWUIT");
        fNorth.setLayout(new CoordinateLayout(300, 300));
        fNorth.setX(0);
        fNorth.setY(0);
        fNorth.setWidth(300);
        fNorth.setHeight(300);             
        
        Controller c = new Controller();
        Questao p = new Questao();        		
        
        int i = 1;
        
        // Questao recebe um objeto Questao
	p = c.gerarQuestao(i);				
	String pDescricao = p.getDescricaoPgt();
	
        //List criado e recebendo a lista de alternativas
	final List lstAlternativas = c.listaAlternativas(p.getAlternativas());
	lstAlternativas.setX(0);
	lstAlternativas.setY(10);
	
        //lstAlternativas.addItem("Testando...");
	lstAlternativas.setWidth(50);
	
        // Create Label Questao        
	Label lblHello = new Label(p.getDescricaoPgt());
        lblHello.setX(0);
        lblHello.setY(0);
        lblHello.setWidth(100);
        lblHello.setSize(new Dimension());
		
        // Button Proxima Questao
        final Button btnProxima= new Button("||PROXIMA>>");
        btnProxima.setX(80);
        btnProxima.setY(10);
        // Button Sair
        final Button btnSair = new Button("Sair");
        btnSair.setX(80);
        btnSair.setY(22);
        // Button Alterar
        
        // Create ActionListeners in the main form        
        ActionListener listener = new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                if (evt.getSource() == btnSair) {
                	exit();
                }else if (evt.getSource() == btnProximo) {
                 // Aqui que eu estava tentando buscar o indice da questao para chamar o metodo de gerarQuestao e alterar o List do form.
                }                
            }
        };

        btnSair.addActionListener(listener);
        btnProximo.addActionListener(listener);
        
        fNorth.addComponent(lblHello);
		fNorth.addComponent(btnSair);
		fNorth.addComponent(btnAlterar);
		fNorth.addComponent(lstAlternativas);
		fNorth.setCommandListener(listener);
		
        return fNorth;
    }   
}


public class Controller {
        ........
	private Questao p;
		
	public List listaAlternativas(Alternativa alternativas[]){
		List lstAlternativas = new List();		
		for(int i=0;i<alternativas.length;i++){
			lstAlternativas.addItem(alternativas[i].getDescricaoAlt());
		}		
		return lstAlternativas;	
	}
	public Questao gerarQuestao(int num){
		
		int j = 0;
		Alternativa[] a = null;

		switch (num){
			
			case 1:
				p = new Questao();				
				j = 0;
				//1ª Pergunta + Alternativas
				p.setIndicePgt(num);
				p.setDescricaoPgt("Pergunta 1:");
				a = new Alternativa[4];
				a[j] = new Alternativa(++j,"Alternativa 1");
				a[j] = new Alternativa(++j,"Alternativa 2");
				a[j] = new Alternativa(++j,"Alternativa 3");
				a[j] = new Alternativa(++j,"Alternativa 4");
				p.setAlternativas(a);
				return p;	
			
                         case 2:
				p = new Questao();				
				j = 0;
				//1ª Pergunta + Alternativas
				p.setIndicePgt(num);
				p.setDescricaoPgt("Pergunta 1:");
				a = new Alternativa[4];
				a[j] = new Alternativa(++j,"Alternativa 1");
				a[j] = new Alternativa(++j,"Alternativa 2");
				a[j] = new Alternativa(++j,"Alternativa 3");
				a[j] = new Alternativa(++j,"Alternativa 4");
				p.setAlternativas(a);
				return p;	
                        case 3:
                          ...
                        case N
                   }
                   return null;
             }
}

Pronto, é isso…Se der, alguem me fala como faço para utilizar o evento de selecionar uma opção, clicar no enter e ela mudar de questão.

Grande abraço e obrigado pela atenção.

Att,
Annibal

Criado 10 de maio de 2010
Ultima resposta 18 de mai. de 2010
Respostas 6
Participantes 2