Associando List de nivel ao Rms

Preciso de ajuda para vincular os itens de uma lista a um recordstore e gostaria que alguem me ajudasse nisso.
Bem começo mostrando meu codigo do rms e depois a da lista respectivamente.

[code]public class Record {

  byte[] data;
  public int marcador;
  public RecordStore rs=null;

Record(){

}
private void open(){
try {
rs = RecordStore.openRecordStore(“nivel”, true);
} catch (RecordStoreException ex) {
ex.printStackTrace();

}
}
private void close(){
try {
rs.closeRecordStore();
} catch (RecordStoreNotOpenException ex) {
ex.printStackTrace();
} catch (RecordStoreException ex) {
ex.printStackTrace();
}

}
public void SaveNivel1(){
open();
try {
int indice=1;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(indice);
dos.flush();
data = baos.toByteArray();

        if(rs.getNumRecords()==0){
        rs.addRecord(data, 0, data.length);
        }
        else
        {
        rs.setRecord(1, data,0, data.length);


        }
        
       

        
        marcador=rs.getRecord(1,data,0);

        baos.close();
        dos.close();
    } catch (RecordStoreNotOpenException ex) {
        ex.printStackTrace();
    } catch (RecordStoreException ex) {
        ex.printStackTrace();
    }  catch (IOException ex) {
        ex.printStackTrace();
    }

close();
}
public void SaveNivel2(){
open();
try {
int indice2=2;

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baos);
        dos.writeInt(indice2);
        dos.flush();
         data = baos.toByteArray();

        if(rs.getNumRecords()==0){
        rs.addRecord(data, 0, data.length);
        }
        else
        {
        rs.setRecord(1, data,0, data.length);


        }
        marcador=rs.getRecord(1,data,0);
        baos.close();
        dos.close();
    } catch (RecordStoreNotOpenException ex) {
        ex.printStackTrace();
    } catch (RecordStoreException ex) {
        ex.printStackTrace();
    }  catch (IOException ex) {
        ex.printStackTrace();
    }

close();
}
public void SaveNivel3(){
try {
int indice3=3;

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baos);
        dos.writeInt(indice3);
        dos.flush();
        data=baos.toByteArray();

        if(rs.getNumRecords()==0){
        rs.addRecord(data, 0, data.length);
        }
        else
        {
        rs.setRecord(1, data,0, data.length);


        }
        marcador=rs.getRecord(1,data,0);
        baos.close();
        dos.close();
    } catch (RecordStoreNotOpenException ex) {
        ex.printStackTrace();
    } catch (RecordStoreException ex) {
        ex.printStackTrace();
    }  catch (IOException ex) {
        ex.printStackTrace();
    }

close();
}[/code]

Agora a da lista;

public nivel(){

[code]super("",List.EXCLUSIVE);
this.volta=new Command("Voltar",Command.BACK,0);
   this.seta=new Command("Ok",Command.OK,1);

append(“Facil”,null);
append(“Medio”,null);
append(“Dificil”,null);
addCommand(volta);
addCommand(seta);
this.setCommandListener(this);
}
public void commandAction(Command c, Displayable d) {
Record record=new Record();
if(c==seta){

switch(this.getSelectedIndex()){

case 0:
      record.SaveNivel1();
    JogoDaVelha.app.msg();
 
     
      break;
case 1:
      JogoDaVelha.app.msg();
      record.SaveNivel2();
      break;
case 2:
     JogoDaVelha.app.msg();
     record.SaveNivel3();
      break;

}[/code]
Bem a logica e a seguinte; criei 3 metodos na classe de records para salvar tres variaveis inteiras no mesmo recordeStore porém sobre o mesmo id de certa forma que o proprio codigo fara a atualização ao inves de criar tres registros.Cada metodo é chamado apos a escolha do usuario a um dos itens da lista postada acima.Cada metodo de save possui uma variavel chmada de “marcador” que pega o que tem salvo sempre no id 1 deste recorde.Fiza tudo isso para poder chegar no alvo do meu problema que é bem aqui…

[code] public void valorizaCaixa( int col, int lin)
{
Record recorde=new Record();
linhaSelec = colunaSelec = 0;

    for( int i=0; i<3; i++ ){
        for( int j=0; j<3; j++ ){
            if( ( linhaSelec == lin ) && ( colunaSelec ==col ) ){
                if ( caixa[i][j] == 0 ){
                    caixa[i][j] = 1;
                    verificaGanhador();
                    repaint();

                   if((vencedor!='x')&&(jogada<=5)&&(recorde.marcador==1)){

                     nivelFacil();
                      repaint();

                  }
                   if((vencedor!='x')&&(jogada<=5)&&(recorde.marcador==2)){

                      medio();
                       repaint();

                   }
                      if((vencedor!='x')&&(jogada<=5)&&(recorde.marcador==3)){

                          dificil();
                        repaint();

                   }
           
                    break;
                }
            }
            else{
                colunaSelec = colunaSelec + 83;
            }
        }

        linhaSelec  = linhaSelec + 100;
        colunaSelec = 0;
    }


 }[/code]

Como podem ver comparo "marcador " com 1 ,2 ou 3 e ae sim os metodos facil medio ou dificil são chamados.Bem, quando faço a coimparação com os valores acima, os metodos de dificulades n são chamados porem quando comparo o “marcador” com “0 =zero” dá certo.Qual é o problema? Será que n esta salvando os valors que eu especifiquei?Preciso de mais alguma coisa ao longo deste código para obter as comparações da maneira que eu quero?
Aguardo sugestões, e desde já agradeço paciência de todos que se disposerem a me ajudar.Grato!