Gravando configurações em RMS

Preciso de uma pequena ajuda.Colocarei primeiro o codigo.Este código está na midlet da minha aplicação e criei uma variavel chamada “indice”

[code]private void open() {
try {

    nivel = RecordStore.openRecordStore("Nivel", true);
}
catch (RecordStoreNotFoundException e) {
    System.out.println("-- RecordStore inexistente");
}
catch (RecordStoreException e) {
    System.out.println("-- Outro erro");
}

}
private void close() {
try {
nivel.closeRecordStore();
}
catch( RecordStoreNotOpenException e ){
System.out.println("-- O Record Store esta fechado");
}
catch( RecordStoreException e ){
System.out.println("-- Outro erro");
}
}
public void SaveNivel(){
open();
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(indice);

    dos.flush();
    byte[] data = baos.toByteArray();

[size=9][/size][size=12][/size][color=cyan][/color][color=darkred][/color]
if(nivel.getNumRecords()!=0){
//atualiza o id com o valor do indice da variavel o sobrescrevendo
nivel.setRecord(1,data, 0, data.length);
}
else{
//adiciona caso não tenha nada salvo
nivel.addRecord(data, 0, data.length);
}
baos.close();
dos.close();

}
catch (IOException e) {
    System.out.println("-- Erro de IO");
}
catch (RecordStoreFullException e) {
    System.out.println("-- Não existe espaço disponível");
}
catch( RecordStoreNotOpenException e ){
    System.out.println("-- O Record Store esta fechado");
}
catch( RecordStoreException e ){
    System.out.println("-- Outro erro");
}

close();
}
public void load_nivel(byte[]data){

ByteArrayInputStream bais = new ByteArrayInputStream(data);
// creates a data input stream to read from
DataInputStream dis = new DataInputStream(bais);

try{
indice=dis.readInt();
dis.close();
}

catch(IOException ex){

}

}
public void load_data(){
try {
open();
// checka se ta vazio

  if (nivel.getNumRecords() != 0) {

    load_nivel(nivel.getRecord(1));

  }
  close();
} catch (RecordStoreException ex) {
}

}[/code]

Esta mesma variavel sera usada para armazenar valores que lhe serão atribuídas atraves de um comando no form do nivel. Eis o codigo.

[code]public void commandAction(Command cmd, Displayable display)
{

    if(display==mainNivel){

        if(cmd.getCommandType()==Command.BACK)
        {
       display(this.initMainForm());

        }
        if(cmd==comSelect){

        switch(mainNivel.getSelectedIndex()){
            case 0:
                mostrarMsgNivel();
                indice=1;
                SaveNivel();


            case 1:
                mostrarMsgNivel();
                indice=2;
                SaveNivel();


            case 2:
                mostrarMsgNivel();
                indice=3;
                SaveNivel();


            }
        }
    }[/code]

pronto ou seja no form nivel o usuario clica no primeiro item da lista e a variavel indice recebe 1,clica na segundo item e recebe 2 e assim por diante,depois salva esta variavel com o record store e a sobrescreve caso seja necessário.Agora vão para o canvas do meu jogo, se alguma coisa tiver errada aew em cima por favor podem concertar.

Há um método no Canvas chamada valorizaJogada responsável por valorizar a jogada do usuario no jogo da velha.

[code]public void valorizaJogada( int col, int lin)
{

  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 )){
                       nivelFacil();
                        repaint();
                    }
             
                    break;
                }
            }
            else{
                colunaSelec = colunaSelec + 83;
            }
        }

        linhaSelec  = linhaSelec + 100;
        colunaSelec = 0;
    }


 }[/code]

Bem minha duvida é bm nessa parte aqui.

if ( ( vencedor != 'x' ) && ( jogada <= 5 )){ nivelFacil(); repaint(); }

Quero fazer essa comparação comparando com o valor armazenado no meu record store,para da entrada nos metodos dos niveis .Tipo pensei muitas coisas,as eu queria algo mais ou menos assim:

[code]public void valorizaJogada( int col, int lin)
{

          if ( ( vencedor != 'x' ) && ( jogada <= 5 )&&(midlet.nivel.getRecord(1)==0)){
                       nivelFacil();
                        repaint();
                    }
             
               }


}[/code]

Crio uma variavel do tipo midlet chama o RS da mesma classe vjo o que tm gravado no seu id.Se for igual a 0 nivl facil,igual 1 nivl mdio e assim por diante.Porem o codigo acima da erro tem outras formas que tb n deu,como chamar o método de leitura da variavel dentro do metodo valoriza Jogada e então fazer a comparação .Bem qualquer ajuda é bem vinda,para resolver este dilema.

Desde já agradeço. :wink:

Por favor, poderei te ajudar, mas coloque as code tags nesse código.

Bem, você está usando uma outra classe que está localizada em midlet.nivel, onde está localizado o RecordStore?
Se não, você pode fazer bem assim:

public void valorizaJogada( int col, int lin) { ... if ( ( vencedor != 'x' ) && ( jogada <= 5 )&&(midlet.nivel.getRecord(1)==0)){ nivelFacil(); repaint(); } } ... }
Espero que ajude,
Nathan Paulino Campos

JA TENTEI ISSO MAS NAO DEU

Hum, vou dar uma analizada melhor on seu código!