메시지 목록에 사용자 정의 폴더 만들기

사용자 정의 메시지는 사용자 정의 폴더에 유지됩니다. 사용자 정의 메시지에 대한 작업을 수행하려면 BlackBerry 단말기 프로그램이 사용자 정의 폴더를 하나 이상 등록해야 합니다.

  1. 필요한 클래스와 인터페이스를 가져옵니다.
    import net.rim.blackberry.api.messagelist.*;
    import net.rim.device.api.collection.ReadableList;
  2. ApplicationMessage 인터페이스를 구현하는 클래스를 만듭니다.
    public class MLSampleMessage implements ApplicationMessage
  3. ApplicationMessageFolderRegistry 객체에 대한 참조를 가져옵니다.
    ApplicationMessageFolderRegistry reg = 
       ApplicationMessageFolderRegistry.getInstance();
  4. ApplicationMessageFolderRegistry.registerFolder()를 호출하여 각 메시지 컬렉션에 대한 사용자 정의 폴더를 등록합니다.
    // collections of MLSampleMessage instances 
    ReadableList inboxMessages = messages.getInboxMessages(); 
    ReadableList deletedMessages = messages.getDeletedMessages(); 
    ApplicationMessageFolder inboxFolder = reg.registerFolder( 
       INBOX_FOLDER_ID, 
       "Inbox", 
       inboxMessages );
    ApplicationMessageFolder deletedFolder = reg.registerFolder( 
       DELETED_FOLDER_ID, 
       "Deleted Messages",   
       deletedMessages, 
       false );
  5. 특정 폴더 이벤트가 발생할 때 프로그램에 알릴 수 있도록 ApplicationMessageFolder.addListener()를 호출하여 수신기를 추가합니다. 다음 코드 샘플에서는 프로그램이 삭제된 메시지를 수신합니다. 수신할 수 있는 모든 작업의 목록은 BlackBerry Java SDK용 API 참조서에 있는 ApplicationMessageFolderListener 클래스의 설명서를 참조하십시오.
    deletedFolder.addListener( this, 
       ApplicationMessageFolderListener.MESSAGE_DELETED );
  6. ApplicationMessageFolderListener 인터페이스를 구현하는 클래스를 만듭니다.
    public class AppFolderListener implements ApplicationMessageFolderListener
  7. 새 폴더 이벤트가 발생할 때 작업을 수행하도록 ApplicationMessageFolderListener.actionPerformed()를 구현합니다.
    public void actionPerformed( int action, ApplicationMessage[] messages, 
       ApplicationMessageFolder folder ) 
    {
       // check if action was performed on multiple messages
       if( messages.length == 1 )  
       {
         switch( action ) 
         {
            case ApplicationMessageFolderListener.MESSAGE_DELETED:
               messageStore.deleteInboxMessage( message );
       ...
  8. ApplicationMessageFolderRegistry.setRootFolderName()을 호출하여 프로그램의 사용자 정의 폴더에 대한 루트 폴더 이름을 지정합니다. 루트 폴더 이름은 프로그램이 프로그램 메시지 폴더를 여러 개 등록할 때 메시지 프로그램의 폴더 보기 대화 상자에 나타납니다.
    reg.setRootFolderName( "ML Sample" );

이 정보가 도움이 되었습니까? 의견을 보내 주십시오.