Salvare il click su di un Button

Claudio84

Nuovo Utente
19 Mar 2015
7
0
0
Ciao a tutti...ho un problema con l app che sto creando..vorrei salvare il click di un button con tutti i suoi eventi in modo che quando riapro l applicazione, mi trovo nella situazione in cui l ho lasciata..
 

Claudio84

Nuovo Utente
19 Mar 2015
7
0
0
Si scusa hai ragione...allore in poche parole ho un activity dove ho creato un questionario...per ogni domanda ci sono 3 checkBox e un Button.ogni checkBox equivale ad una risposta.se l utente clicca una risposta sbagliata e poi conferma con il button, si colora di verde la risposta esatta, di rosso quella cliccata dall utente e compare una textView con il punteggio...bene fin qui tutto ok...sono riuscito con le sharedPreferences a salvare il click delle check box però io vorrei che quando l utente chiude e riapre l app, si ritrovasse come quando l ha chiusa....quindi risposta errata rossa,risposta giusta verde e textview con il punteggio...al momento quando riapro l app mi trovo solo la checkbox cliccata ma tutto il resto no...devo ricliccare il button per far apparire tutto
 

Claudio84

Nuovo Utente
19 Mar 2015
7
0
0
Ho guardato il suggerimento che mi hai dato...ma non ho capito molto e ho deciso di abbandonare questa cosa...ora vorrei fare sempre quel questionario con domanda e tre checkbox ma aggiungere un pulsante next che mi cambia il layout e mi presenta una nuova domanda...piccolo problema non riesco a farlo..come posso fare senza creare 1000 activity a fare un questionario con una sola activity che al click del button next mi cambia domanda?
 

michelep

Utente Attivo
21 Nov 2013
123
4
0
www.michelepierri.it
Ho guardato il suggerimento che mi hai dato...ma non ho capito molto e ho deciso di abbandonare questa cosa...ora vorrei fare sempre quel questionario con domanda e tre checkbox ma aggiungere un pulsante next che mi cambia il layout e mi presenta una nuova domanda...piccolo problema non riesco a farlo..come posso fare senza creare 1000 activity a fare un questionario con una sola activity che al click del button next mi cambia domanda?
Al click su next inserisci la domanda e la risposta all'interno di una lista e carichi la successiva domanda:

Codice:
 t=(TextView)findViewById(R.id.TextView01); 
    t.setText("......................");
 

Claudio84

Nuovo Utente
19 Mar 2015
7
0
0
Ok..quello sono riuscito a farlo..posto il codice...qui ho masso 3 domande...il problema è che cliccando su next, mi salta la seconda domanda e passa direttamente sulla terza..non capisco perche...
Codice:
public class MainActivity extends Activity
{CheckBox a,b,c;
TextView domanda,rivedi,punteggio;
Button conf,next;
int punto;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
	{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
		a=(CheckBox)findViewById(R.id.uno);
		b=(CheckBox)findViewById(R.id.due);
		c=(CheckBox)findViewById(R.id.tre);
		next=(Button)findViewById(R.id.next);
		conf=(Button)findViewById(R.id.conferma);
		rivedi=(TextView)findViewById(R.id.rivedi);
		punteggio=(TextView)findViewById(R.id.punteggio);
		domanda=(TextView)findViewById(R.id.domanda);
		domanda.setText("prima domanda");
		a.setText("risp1");
		b.setText("risp2");
		c.setText("risp 3");
		
		conf.setOnClickListener(new OnClickListener(){
			public void onClick(View v){
				if(a.isChecked()){
					a.setBackgroundColor(Color.GREEN);
				punteggio.setText(punto+" Punto");
				}
			}
		});
		next.setOnClickListener(new OnClickListener(){
			
			
			public void onClick(View v){
				domanda.setText("domanda 2");
				a.setText("risp1.2");
				b.setText("risp2.2");
				c.setText("risp3.2");
				a.setChecked(false);
				a.setBackgroundColor(Color.WHITE);
				conf.setOnClickListener(new OnClickListener(){
						public void onClick(View v){
							if(a.isChecked()){
								a.setBackgroundColor(Color.RED);
							}
						}
					});
				}
		});
		next.setOnClickListener(new OnClickListener(){


				public void onClick(View v){
					domanda.setText("domanda 3");
					a.setText("risp1.3");
					b.setText("risp2.3");
					c.setText("risp3.3");
					a.setChecked(false);
					a.setBackgroundColor(Color.WHITE);
					conf.setOnClickListener(new OnClickListener(){
							public void onClick(View v){
								if(a.isChecked()){
									a.setBackgroundColor(Color.RED);
								}
							}
						});
				}
			});
    }
	
}
 

michelep

Utente Attivo
21 Nov 2013
123
4
0
www.michelepierri.it
Ok..quello sono riuscito a farlo..posto il codice...qui ho masso 3 domande...il problema è che cliccando su next, mi salta la seconda domanda e passa direttamente sulla terza..non capisco perche...
Codice:
public class MainActivity extends Activity
{CheckBox a,b,c;
TextView domanda,rivedi,punteggio;
Button conf,next;
int punto;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
	{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
		a=(CheckBox)findViewById(R.id.uno);
		b=(CheckBox)findViewById(R.id.due);
		c=(CheckBox)findViewById(R.id.tre);
		next=(Button)findViewById(R.id.next);
		conf=(Button)findViewById(R.id.conferma);
		rivedi=(TextView)findViewById(R.id.rivedi);
		punteggio=(TextView)findViewById(R.id.punteggio);
		domanda=(TextView)findViewById(R.id.domanda);
		domanda.setText("prima domanda");
		a.setText("risp1");
		b.setText("risp2");
		c.setText("risp 3");
		
		conf.setOnClickListener(new OnClickListener(){
			public void onClick(View v){
				if(a.isChecked()){
					a.setBackgroundColor(Color.GREEN);
				punteggio.setText(punto+" Punto");
				}
			}
		});
		next.setOnClickListener(new OnClickListener(){
			
			
			public void onClick(View v){
				domanda.setText("domanda 2");
				a.setText("risp1.2");
				b.setText("risp2.2");
				c.setText("risp3.2");
				a.setChecked(false);
				a.setBackgroundColor(Color.WHITE);
				conf.setOnClickListener(new OnClickListener(){
						public void onClick(View v){
							if(a.isChecked()){
								a.setBackgroundColor(Color.RED);
							}
						}
					});
				}
		});
		next.setOnClickListener(new OnClickListener(){


				public void onClick(View v){
					domanda.setText("domanda 3");
					a.setText("risp1.3");
					b.setText("risp2.3");
					c.setText("risp3.3");
					a.setChecked(false);
					a.setBackgroundColor(Color.WHITE);
					conf.setOnClickListener(new OnClickListener(){
							public void onClick(View v){
								if(a.isChecked()){
									a.setBackgroundColor(Color.RED);
								}
							}
						});
				}
			});
    }
	
}
Dando un occhio al volo mi par di vedere che hai impostato 2 click event sul pulsante Next, quindi lui esegue sempre l'ultimo.

Ti do un idea di come potresti strutturare:
Codice:
Vettore domande[];
Vettore risposte[];
int numero = 1;

Main(){
   caricaDomanda(numero);
}

caricaDomanda(int i){
  caricaElementiGrafici(domande[i]);
}

clickRisposta(){
  if (risposte(numero) = rispostaFornita){
    numero = numero +1;
    caricaDomanda(numero);
  }else{
    scrivi risposta errata
  }
}
 

Claudio84

Nuovo Utente
19 Mar 2015
7
0
0
Grazie mille..sono riuscito a fare buona parte di quello che avevo intenzione di creare..l unica cosa che non riesco a fare è come associare la risposta esatta alla checkbox e come cambiare la checkbox con la risposta esatta per ogni domanda
Codice:
 public class MainActivity extends Activity
{CheckBox a,b,c;
TextView domanda,rivedi,punteggio;
Button conf,next;
int punto;
int numero=0;
String ciao="g";
String risp="risp1";
String domande[]={"domanda 1","domanda 2","domanda 3","domanda4"};
String rispEsatte[]={"risp1","risp2"};
String risposte[]={"risp1","risp2","risp3,","risp4","risp5","risp6","risp7","risp8","risp9","rispq0","risp11","risp12","risp13","risp14"};
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
	{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
		a=(CheckBox)findViewById(R.id.uno);
		b=(CheckBox)findViewById(R.id.due);
		c=(CheckBox)findViewById(R.id.tre);
		next=(Button)findViewById(R.id.next);
		conf=(Button)findViewById(R.id.conferma);
		rivedi=(TextView)findViewById(R.id.rivedi);
		punteggio=(TextView)findViewById(R.id.punteggio);
		domanda=(TextView)findViewById(R.id.domanda);
		domanda.setText(domande[0]);
		a.setText(risposte[0]);
		b.setText(risposte[1]);
		c.setText(risposte[2]);
		next.setOnClickListener(new OnClickListener(){
			public void onClick(View v){
				//if(a.isChecked()){
					
							
						
					
					clickRisposta();
					}
					
				
			
		});
				}
			
    
	

	public void Main(){
		 caricaDomanda(numero);
		 
		 } 
		public void caricaDomanda(int i){ 
		domanda.setText(  domande[i]); 
		
		} 
	public void caricaRisposte(int i){ 
		a.setText(  risposte[i+2]); 
		b.setText(  risposte[i+3]);
		c.setText(  risposte[i+4]);
		}
		public void clickRisposta(){
			
			//if (risposte[numero] == rispEsatte[numero]&& z.isChecked()){ 
			//if(z.isChecked()){
				if(risposte[numero]==rispEsatte[0]){
			numero = numero +1; 
			caricaDomanda(numero);
			caricaRisposte(numero);
			a.setChecked(false);
			b.setChecked(false);
			c.setChecked(false);
				Toast.makeText(getBaseContext(),"Risposta esatta",Toast.LENGTH_LONG).show();
			}else{ 
			Toast.makeText(getBaseContext(),"Risposta sbagliata",Toast.LENGTH_LONG).show();
			} 
			}
			public void cambiaClick(){
				
			}

	
}