Wat gaat er fout? count++ maar telt niet op

Status
Niet open voor verdere reacties.

erict211

Gebruiker
Lid geworden
1 apr 2013
Berichten
9
Ben bezig met aan App te maken in Eclipse, maar loop tegen een probleempje op wat ik niet kan verklaren...

Even kort voorstellen:
Heb helaas niet veel java ervaring/kennis, wel php echter.
Normaliter bij php kan ik binnen een programmaatje het volgende doen (hier even voor het gemak al omgezet naar java):

----
int waarde = position;//gemeten positie.
int count = 0;

if((100-waarde)<10){ count++; }
canvas.drawText("Counted: "+count,60,60,paint);
----

Ik heb hier zelfs een array ook nog in toegepast, maar het maakt geen verschil.
Wat er gebeurt:
De waarde/positie kan varieren tussen de 0 en 100. De gemeten waarde is na 100 geen 101, maar weer 0. Dat ter info.
Met dit stukje code wordt als de waarde bijv 91 is, op het schermpje 'Counted: 1' afgebeeld.
Echter...
wordt de waarde/positie na 100 weer 0, dan is het de bedoeling dat count gewoon 1 blijft, en als de waarde weer opnieuw 91 is, count 2 wordt.
Maar dat doortellen werkt dus niet.... count springt gewoon weer terug naar 0 (als niet meer aan de voorwaarde wordt voldaan), en ik snap niet hoe en waarom dat komt eigenlijk :-(

Iemand een idee?

De bijna volledige code, maar dan als array gepoogd:

Code:
package com.examples.testprojectEric;


import Android.content.Context;
import Android.graphics.Canvas;
import Android.graphics.Color;
import Android.graphics.Paint;
import Android.view.View;

public class MyView extends View {

    private Paint paint;
    private float position = 0;

    public MyView(Context context) {
        super(context);
        init();
    }

    private void init() {
        paint = new Paint();
        paint.setAntiAlias(true);
        paint.setStrokeWidth(2);
        paint.setTextSize(25);
        paint.setStyle(Paint.Style.STROKE);
        paint.setColor(Color.BLUE);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        int xPoint = getMeasuredWidth() / 2;
        int yPoint = getMeasuredHeight() / 2;
        int countArray[] = new int[1];
        countArray[0]    = 0;
        
        String tekst = "Welkom";
        float positie = position;//gemeten waarde
        if((100 - positie)<0){
            countArray[0]++;
        }

        
        canvas.drawText(tekst,90,30,paint);
        canvas.drawText("Counted: "+countArray[0],60,60,paint);


    }

    public void updateData(float position) {
        this.position = position;
        invalidate();
    }

}
 
Laatst bewerkt:
Probleem gevonden....

"int countArray[] = new int[1];" behoort aan het begin gedeclareert te worden, dus onder "private float position = 0;"
 
Fijn dat je het zelf hebt kunnen vinden. Kun je je vraag op opgelost zetten? Bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan