Этот метод, очевидно, требует, чтобы вы знали уникальный ID записи, которую вы хотите извлечь. К сожалению, это означает, что вам, возможно, придется хранить ID где-нибудь в легкодоступном месте после того, как он будет выдан вам методом addRecord (). Это не всегда удобно или практично при большом количестве записей.

Самый легкий способ найти записи, которые вам нужны, — это использовать списки, которые поддерживаются классом RecordStore. Список весьма удобен при извлечении записей, если вы не знаете ID записей, которые вам нужны. Вы можете создать список записей, хранящихся в хранилище записей, а затем исследовать его, выбрав одну или несколько записей, которые вам нужны.

Класс RecordStore определяет метод

RecordEnumeration

enumerateRecords(RecordFilter filter,

RecordComparator comparator,

boolean keepUpdated)

который выдает список записей в хранилище записей. В листинге 7.2 показан исходный код RecordList.Java. Этот класс создает и отображает список всех записей адресной книги. Обратите внимание, что для того, чтобы извлекать записи, ID записей указывать не нужно.

Листинг 7.2. Списки дают вам возможность получать доступ к записям, не зная их идентификационных номеров (ID)

import javax.microedition.midlet.MIDlet;

import javax.microedition.lcdui.Alert;

import javax.microedition.lcdui.AlertType;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Displayable;

import javax.microedition.lcdui.List;

import javax.microedition.rms.RecordEnumeration;

import javax.microedition.rms.RecordStore;

import javax.microedition.rms.RecordStoreException;

import java.io.ByteArraylnputStream;

import Java.io.DatalnputStream; import Java.io.lOException;

/**

Этот класс является компонентом пользовательского интерфейса, отображающим список записей, находящихся в хранилище записей.

Он использует объект AddressBook, определенный классом MID-лета для данного приложения MID-лета.

@смотри AddressBook

@смотри AddressBookMain

*/

public class RecordList extends List

implements CommandListener

{

private static Command go =

new command("Go", Command.SCREEN, 1);

private static Command back =

new Command("Back", Command.BACK, 1);

private Display display;

private static RecordList instance;

/**

Конструктор.

@param title название экрана пользовательского интерфейса,

который является List.

*/

public RecordList (String title)

superltitle, List.IMPLICIT);

instance = this;

PersistenceDemo pDemo = PersistenceDemo.getlnstance ();

display = Display.get-Display (pDemo);

addCommand(back); setCommandListener (this);

if (buildRecordList() <= 0) setTitle("No records found");

}

/**

Возвращает один экземпляр данного класса.

Вызов этого метода перед созданием объекта возвращает нулевой указатель.

@возвращает экземпляр данного класса.

*/

public static RecordList getlnstance()

}

return instance;

}

void display ()

{

display.setCurrent (this);

{

/**

Создает список записей, хранящихся в хранилище записей. Выдает число найденных записей. Этот метод извлекает все записи из хранилища записей, то есть он не использует фильтров для извлечения записей. Он также не использует компараторов записей, так что не упорядочивает выводимые записи.

Этот метод не сбрасывает исключений, но находит исключения, которые происходят при доступе к хранилищу записей.

(@возвращает число записей, найденных в хранилище записей, или 0, если записей не найдено.

Перейти на страницу:

Похожие книги