Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[J2ME] ChoiceGroup & problem z RMSem

iie 28 Gru 2010 14:46 669 6
  • #1 28 Gru 2010 14:46
    iie
    Poziom 15  

    Witam

    Cni hakerzy z elektrody, jesteście moją ostatnią nadzieją , czy istnieje jakiś spsób aby uzyskać ID rekordu w RMS? Mam taki problem, że rekordy z RMSa wpisuje do ChoiceGroup'y no i z tego miejsca chce je ew kasować, czy jest na to jakaś opcja? Problem nie jest taki prosty jak się wydaje:


    Code:
    public void profilRmsRemover( ) throws RecordStoreException{
    
        rs.deleteRecord(ldr.getSelectedIndex()+1);
           ldr.delete(ldr.getSelectedIndex());
        rs.closeRecordStore();
    }


    jeżeli np skasujemy wszystkie profile [ dajmy na to w bazie danych
    były 4 ] i dodamy nowy, to rekord będzie miał ID 5, ale w choicegroupie będzie miał wartość 0. Czy jest jakiś sposób na obejście tego?

    0 6
  • #3 28 Gru 2010 18:31
    iie
    Poziom 15  

    no tak, ale skąd choiceGroup będzie wiedział, który rekord został wybrany? Tzn jak mam porównać rekord wybrany z RMSa z tym, który został wybrany [ wybacz powtórzenie ] z choiceGroupy, no i czy nextRecord lub nextRecordID nie wskazuje na następny rekord?

    0
  • #4 28 Gru 2010 19:09
    przemo_wielki
    Poziom 23  

    Wybierasz rekord 1, następnie pobierasz indeksy rekordów do tablicy może to być np. 5,7,8 - zawsze w kolejności (enum) i usuwasz pierwszy indeks który w tym przypadku wskazuje na 5 rekord (fizycznie). ChoiceGroup w tym przypadku wyznacza indeksy tablicy identyfikatorów (brzmi zagmatwanie jak samo RMS) ;)

    0
  • #5 28 Gru 2010 23:12
    iie
    Poziom 15  

    ok jestem coraz bliżej, problem został mi tylko z hm nazwijmy to algorytmem. Mianowicie jak mam ująć w kodzie to rzutowanie indeksów choicegroupy na tablice.

    0
  • Pomocny post
    #6 28 Gru 2010 23:33
    przemo_wielki
    Poziom 23  

    Code:
    int numerRekordu = LUsunSesjeRMS.getSelectedIndex();
    
                try {
                    RecordStore rc = RecordStore.openRecordStore(wybierzRMS, false);
                    RecordEnumeration recEnum = rc.enumerateRecords(null, null, false);
                    tUsun = new byte[255];
                    int i=0;
                    while (recEnum.hasNextElement()) {
                        tUsun[i] = (byte)(recEnum.nextRecordId());
                        i++;
                    }
                    rc.deleteRecord(tUsun[numerRekordu]);
                    rc.closeRecordStore();
                } catch (RecordStoreException ex) {
                    ex.printStackTrace();
                }


    tutaj masz wycinek mojego kodu który pisałem z rok temu, powinno działać (przynajmniej działało ;))

    0
  • #7 29 Gru 2010 08:56
    iie
    Poziom 15  

    DZIAŁA!!!! Molto thx!! Podarowałbym ci punkt, ale masz ich tak dużo, że nie docenisz, dlatego zwykłe "pomógł" musi ci wystarczyć = D

    0