Digole OLED and displaying text

Hallo everybody, I'm a newbie but actually I managed to do my simple projects with arduino. Now I'm moving into a car display and I'm getting some problems. Let me show.
hardware:
Arduino UNO
Digole OLED 128x64 serial display using UART
https://www.digole.com/images/file/Tech_Data/Digole_Serial_Display_Adapter-Manual.pdf Display manual

My testing loop:

void loop() {  
    for (int i = 1; i < 8000; i++) {      
        mydisp.clearScreen();
        mydisp.setPrintPos(5,0);
        mydisp.print(i*50);
        mydisp.setPrintPos(5,1);
        mydisp.print(i);

        //LEDS
        if (i >= 150){ 
          digitalWrite(yellowLed, HIGH);
          digitalWrite(redLed, HIGH); 
        }
        else if  (i >= 140 && i < 150){ 
          digitalWrite(yellowLed, HIGH);
          digitalWrite(redLed, LOW); 
        }
        else { 
          digitalWrite(yellowLed, LOW);
          digitalWrite(redLed, LOW); 
        }
        delay(100);        
        i = i%160;
    }
}

I made for loop "simulating" numbers growing that will be replaced with RPM and KMH... forget about the leds they work well. I'm getting the numbers in the correct position but with actual code the display flickers in a really bad way. The problem is made by clearScreen() method so I should not use it. If I comment it out the stuff works well when going up but got some position issues when the numbers lower and becames form 3 chars to 2, from 2 to 1. I think it's because not clearing the screen I Just overwrite it so where there is no overwriting last number remains.
I also do like to align the text on right side while now they're aligned left.

I hope there is a workaround.
Thank you!

Please remove this line: i = i%160;
You have 'i' already used for the 'for'-loop.
Change the 'for'-loop if you want to count to 160.

Using the digole display greatly reduces the posibilities. If you would have bought a 'normal' OLED, your probably would be able to use the versatile u8glib:
https://code.google.com/p/u8glib/
Or the Adafruit displays come also with a library:

Clearing the screen takes some time, I can imagine that you can see the display flicker.
With fixed size characters, you can convert the value to a string, and fill the string with spaces to cover previous numbers.
That is a normal way to deal with such problems. The function sprintf() is able to format text with preceding spaces.

Thank you for advices, as usual cheap stuff doesn't works at besy =(
I'll try some workaround with the spaces and hopefully I'll find a way.
Don't you think u8g will work with the digole display?

I use the digole display, and what I do in the same situation, is to write a blank space to clear the location. So rather than what you have;

mydisp.clearScreen();
mydisp.setPrintPos(5,0);
mydisp.print(i*50);
mydisp.setPrintPos(5,1);
mydisp.print(i);

I would have;

mydisp.setPrintPos(5,0);
mydisp.print(" ");
mydisp.setPrintPos(5,0);
mydisp.print(i*50);
mydisp.setPrintPos(5,1);
mydisp.print(" ");
mydisp.setPrintPos(5,1);
mydisp.print(i);

or something similar. This doesnt work too well if you dont know the length of the number to be printed, or if the space is very tight or variable. It does cut down on the flicker though.

MarkB