Android problem z petla for

0

Witam wszystkich. Od niedawna programuje w androidzie. Zrodził mi się taki problem i prosilbym o pomoc. Otóż tworze grę podobną do milionerów - obrazek i 4 odpowiedzi. Czesc kodu zamieszczam ponizej:

        final ImageView img = (ImageView)findViewById(R.id.zadanie1);
        final ImageView dobrze = (ImageView)findViewById(R.id.dobrze);
        dobrze.setImageLevel(0);  // obrazek 0)nic, 1)dobrze, 2)zle
        img.setImageLevel(1);
                
      
		
        for(int i=1; i<=10; i++)
        {
        
        	
        	img.setImageLevel(i);

        	  //Akcja po nacisnieciu przyciski 1
        	odp1.setOnClickListener(new Button.OnClickListener()
        	{
        		public void onClick(View v1)
        		{
        			boolean answer1 = false;
        			
        			if(answer1 == true){
        				dobrze.setImageLevel(1);
            		
        		        }
        			else
        				dobrze.setImageLevel(2);
        		}
                      
        	});
		
        	//Akcja po nacisnieciu przycisku 2
		
        	odp2.setOnClickListener(new Button.OnClickListener()
        	{
				public void onClick(View v2)
				{
            	   	              boolean answer2 = true;
        		
            	   	              if (answer2 == true)
            	   	              	       dobrze.setImageLevel(1); 
            		              else
            	   		          dobrze.setImageLevel(2);		
        			           	   	
        		   		
		                 }
                      
        	});

Kolejny poziom image, to kolejny obraz z pytaniem. Wartości answer1/2 beda podawane automatycznie, gdy znajde sposob na zapisanie gdzies wartosci poprawnych odpowiedzi i ich zmiane w zaleznosci od numeru pytania.

Problem polega na tym, że po uruchomieniu programu nie ukazuje mi się żaden obrazek przewidziany dla zmiennej image. Gdy podstawiam do setImageLevel(b), gdzie b to nowo stworzony int, wszystko działa, tylko, że zależy mi na inkrementacji przy każdym obiegu pętli.

  1. Próbowałem również zaimplementować zmienną int poza pętlą, lecz wyskakiwał komunikat, że mogę jej użyć wewnątrz pętli i innych instrukcji, tylko gdy przypisze jej 'final'. Tylko gdy zmienna ma taki przedrostek, to nie mogę zmieniać już jej wartości (sprawdziłem). Czy jest wobec tego jakis sposob, aby mozna bylo wykorzystywac zmienna wewnatrz innych instrukcji i moc zmieniac jej wartosc?? Gdy wpisywałem inne przedrostki, wyskakiwal komunikat, ze tylko 'final' jest mozliwe.

Pomocy!!

0

Może gdyby uniknelo sie definiowania onClickListener udałoby sie obejsc ten problem.
W android reference podano nowy zamiast definiowania onClickListener:
Link do reference: http://developer.android.com/reference/android/widget/Button.html

  1. w XML zdefiniować parametr
 

android:onClick="selfDestruct"


dla przycisku Button i
2) w aplikacji stworzyć metodę

```java
public void selfDestruct (View void){
             //instrukcja
}

Wszystko było by pieknie gdyby nie wyskakujace błędy

 Multiple markers at this line
	- Syntax error on token ")", ; expected
	- Syntax error on token "(", ; expected
	- void is an invalid type for the variable  selfDestruct

Macie pojęcie o co w tym chodzi?? Jeśli nie void to jaki typ wstawić??

0
przemas012 napisał(a)
public void selfDestruct (View void){
             //instrukcja
}

Oczywiście nie View void, tylko View v

1 użytkowników online, w tym zalogowanych: 0, gości: 1