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!