Zwei Bilder gleichzeitig ändern Problem

N

nlfell

Ambitioniertes Mitglied
0
Hallo, ich habe ein Problem und zwar habe ich zwei Bilder, die sich beide ändern sollen, wenn man auf eins von beiden drückt. Das erste Bild nenne ich jetzt Bild A und das zweite Bild B. Wenn ich jetzt auf die Seite in meiner App gehe und auf Bild A drücke, passiert nichts. Wenn ich nochmal auf Bild A drücke, ändern sich beide richtig und das geht unendlich so weiter, also nach dem 2. Drücken läuft es super. Wenn ich nochmal auf die Seite gehe und auf Bild B drücke passiert gar nichts, egal wie oft ich drücke, es ist so, als wäre B erst durch das zweimalige Drücken freigegeben. Was kann ich da machen.
 
ohne code oder nähere beschreibung kann man ncihts aussagen leider...
 
Code:
ImageButton zurueck;
	private int i = -1;
	private int j = -1;
	ImageView bild;
	ImageView bild2;


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_seite1);
		
		zurueck = (ImageButton)findViewById(R.id.zurueck);
        
        zurueck.setOnClickListener(new OnClickListener() {
        	
        	public void onClick(View v) {
        	startActivity(new Intent(Seite1.this,Hauptmenue.class));
        	}
        	});

		bild2 = (ImageView)findViewById(R.id.imageView2);
		bild = (ImageView)findViewById(R.id.imageView1);
		
		final int bilder2[] = new int[13];
		final int bilder[] = new int[13];

		bilder[0] = R.drawable.bild1;
                ...
		bilder[12] = R.drawable.bild13;
		
		bild.setOnClickListener(new OnClickListener () {
	    	
	    	public void onClick(View v) {
			i++;
			j++;
			i%=13;
			j%=13;

			bild.setImageResource(bilder[i]);
			bild2.setImageResource(bilder2[j]);
			
			
			
		bilder2[0] = R.drawable.ZweitesBild1;
                ...
		bilder2[12] = R.drawable.ZweitesBild13;
		
		
		bild2.setOnClickListener(new OnClickListener () {
	    	
	    	public void onClick(View v) {
			j++;
			j%=13;
			i++;
			i%=13;

			bild2.setImageResource(bilder2[j]);
			bild.setImageResource(bilder[i]);
 
Hey ich hab mri mal die Mühe gemacht und es umgeschrieben und ein bisschen platz geschafft und strukturiert

Code:
ImageButton zurueck;
private int i;
ImageView bild;
ImageView bild2;
final int bilder2[] = new int[13];
final int bilder[] = new int[13];

bilder[0] = R.drawable.bild1;
          //...
bilder[12] = R.drawable.bild13;

bilder2[0] = R.drawable.ZweitesBild1;
     //...
bilder2[12] = R.drawable.ZweitesBild13;


@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.activity_seite1);
    i=0;
	
    zurueck = (ImageButton)findViewById(R.id.zurueck);
    bild = (ImageView)findViewById(R.id.imageView1);
    bild2 = (ImageView)findViewById(R.id.imageView2);
	
    zurueck.setOnClickListener(new View.OnClickListener() //ich kenne das nut mit View.OnClickListener aber vllt gehts auch mit deiner variante
    {
    	public void onClick(View v) 
    	{
    		startActivity(new Intent(Seite1.this,Hauptmenue.class));
    	}
    });
	
    bild.setOnClickListener(new View.OnClickListener() 
    {
    	public void onClick(View v) 
    	{
    		i%=13;		//funktioniert das?
    		bild.setImageResource(bilder[i]);
    		bild2.setImageResource(bilder2[i]);
    		i++;
		
                //ich würds so machen:
                //bild.setImageResource(bilder[i%13]);
                //bild2.setImageResource(bilder2[i%13]);
                //i++;
    	}
    });
		
    bild2.setOnClickListener(new View.OnClickListener () 
    {
    	public void onClick(View v) 
    	{
    		i%=13;
    		bild.setImageResource(bilder[i]);
    		bild2.setImageResource(bilder2[i]);
    		i++;
    		
                //hier dasselbe:
                //bild.setImageResource(bilder[i%13]);
                //bild2.setImageResource(bilder2[i%13]);
                //i++;
    });
 
Zuletzt bearbeitet:
Wenn in beiden onClick Methoden sowieso das gleiche gemacht werden soll, kann man auch folgendes machen:

Das hier in der onCreate
Code:
bild.setOnClickListener(bildklick);
bild2.setOnClickListener(bildklick);
und dann noch extra den onClickListener:
Code:
public OnClickListener bildklick = new OnClickListener() {
        
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if(v==bild||v==bild2)
            {
                i%=13;
                bild.setImageResource(bilder[i]);
                bild2.setImageResource(bilder2[i]);
                i++;
            }
        }
};


Der ursprüngliche Beitrag von 18:19 Uhr wurde um 19:49 Uhr ergänzt:

Ergänzung:
Ich habs mal selbst probiert. Funktioniert bei mir 1a. Code ist zwar verbesserungswürdig, aber bin selbst auch erst Laie in Programmierung. XD
Habs mal nur mit 4 Bilder probiert. Wollte nicht noch mehr pngs erstellen zum testen. Aber Code kann ja abgeändert werden.
Code:
public class MainActivity extends Activity {
    private int i=0;
    private int bildA, bildB;
    private ImageView bild;
    private ImageView bild2;
        
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bild=(ImageView)findViewById(R.id.imageView1);
        bild2=(ImageView)findViewById(R.id.imageView2);
        bild.setOnClickListener(bildklick);
        bild2.setOnClickListener(bildklick);
        bildA = this.getResources().getIdentifier("bild1"+i, "drawable", getPackageName());
        bildB = this.getResources().getIdentifier("bild2"+i, "drawable", getPackageName());    
        bild.setImageResource(bildA);
        bild2.setImageResource(bildB);
    }
    
    public OnClickListener bildklick = new OnClickListener() {
        
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if(v==bild||v==bild2)
            {
                i++;
                i%=4;    
                bild.setImageResource(bildA+i);
                bild2.setImageResource(bildB+i);
            }
        }
    };     

}
Ich persönlich finde meine Variante aufgeräumter. XD
 
Zuletzt bearbeitet:
Okay ich habs jetzt hinbekommen mit euren verschiedenen Arten!! Danke :)
 
Zuletzt bearbeitet:

Ähnliche Themen

D
Antworten
14
Aufrufe
1.648
chrs267
chrs267
C
  • Chicken Wing
Antworten
4
Aufrufe
822
Chicken Wing
C
B
Antworten
6
Aufrufe
1.016
jogimuc
J
Zurück
Oben Unten