RMS w J2ME

0

mam funkcje

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tools;

import javax.microedition.rms.*;

public class rms {
    
    public static void rmsSave (String _key) {
        try {
            RecordStore rs = RecordStore.openRecordStore("MyKeys", true);
            
            String appt = _key;
            byte bytes[] = appt.getBytes();
            rs.addRecord(bytes,0,bytes.length);
            rs.closeRecordStore();
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }
        
    }
    
    public static String rmsRestore () {
        String key = new String();
        
        try {
            RecordStore rs = RecordStore.openRecordStore("MyKeys", true);

            if (rs.getNumRecords() > 0) {
                byte b[] = rs.getRecord(1);
                key = new String(b,0,b.length);
                
                rs.closeRecordStore();
            }
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }
        
        return key;
    }
}

z czego odczyt jest uzyty tak:
keyText = new TextField("Verification key:", tools.rms.rmsRestore(), 32, TextField.ANY);

a zapis:
tools.rms.rmsSave(keyText.getString());

podaje sie to tylko raz po uruchomieniu programu, niestety efekt jest taki ze jak wpisale po pierwszym uruchomieniu '10' to za kazdym razem sie z ta wartoscia uruchamia, pomimo ze ja zmieniam i powinno sie zupdateowac w pamieci telefonu by pokazac przy kolejnym poprzednia wartosc...

nie wiem dlaczego, z gory dzieki za pomoc

0

Z tego co znalazłem, do nadpisywania służy setRecord a nie add :-) Pewnie z tym jest problem.

0
public class rms {
    
    public static void rmsSave (String _key) {
        try {
            RecordStore rs = RecordStore.openRecordStore("MyKeys", true);
            
            String appt = _key;
            byte bytes[] = appt.getBytes();
            rs.setRecord(1,bytes,0,bytes.length);
            rs.closeRecordStore();
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }
        
    }
    
    public static String rmsRestore () {
        String key = new String();
        
        try {
            RecordStore rs = RecordStore.openRecordStore("MyKeys", true);

            if (rs.getNumRecords() > 0) {
                byte b[] = rs.getRecord(1);
                key = new String(b,0,b.length);
                rs.closeRecordStore();
            }
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }
        
        return key;
    }
}

dzieki, teraz co prawda powinno byc OK, ale pomimo ze edytuje ten wiersz na rozne liczby, to i tak w kolejnych uruchomieniach dostaje zawsze 10, kiedys wpisana... dziwne przeciez ID rekordu sie zgadzaja (1)

1 użytkowników online, w tym zalogowanych: 0, gości: 1