2010-08-13 4 views
0

메시지 편집 화면에서 ApplicationMenuItem을 선택한 경우 기본 보낸 프로그램을 무시하고 선택한 연락처 자체에 메시지를 전송하는 방법이 있는지 궁금합니다. 나는 메뉴 항목을 잘 알고 있고 '컨텍스트'인수를 검색하여 비슷한 작업을 수행하는 방법을 보았지만 메시지 본문과 선택한 연락처를 어떻게 가져올 지 확신하지 못합니다.ApplicationMenuItem을 사용하여 RIM API의 기본 메시지 발신자를 재정의합니다.

package so.samples; 

import net.rim.blackberry.api.invoke.Invoke; 
import net.rim.blackberry.api.invoke.MessageArguments; 
import net.rim.blackberry.api.mail.Address; 
import net.rim.blackberry.api.mail.Message; 
import net.rim.blackberry.api.mail.MessagingException; 
import net.rim.blackberry.api.menuitem.ApplicationMenuItem; 
import net.rim.blackberry.api.menuitem.ApplicationMenuItemRepository; 
import net.rim.device.api.ui.UiApplication; 
import net.rim.device.api.ui.component.Dialog; 

public class SOComposeMsgMenuApp extends UiApplication { 

    public static void main(String[] args) { 
     (new SOComposeMsgMenuApp()).enterEventDispatcher(); 
    } 

    public SOComposeMsgMenuApp() { 
     ApplicationMenuItem emailMenuItem = new ApplicationMenuItem(0) { 
      public Object run(final Object context) { 
       if (context instanceof Message) { 
        StringBuffer text = new StringBuffer("Message \nTo:\n"); 
        Message msg = (Message) context; 
        Address[] to = new Address[] {}; 
        try { 
         to = msg.getRecipients(Message.RecipientType.TO); 
        } catch (MessagingException e) { 
        } 
        for (int i = 0; i < to.length; i++) { 
         text.append(to[i].toString()); 
         text.append("\n"); 
        } 
        text.append("Body:\n"); 
        text.append(msg.getBodyText()); 
        Dialog.inform(text.toString()); 
       } 
       return context; 
      } 

      public String toString() { 
       return "My Menu Item"; 
      } 
     }; 

     ApplicationMenuItemRepository amir = ApplicationMenuItemRepository 
       .getInstance(); 
     amir.addMenuItem(ApplicationMenuItemRepository.MENUITEM_EMAIL_EDIT, 
       emailMenuItem); 
     Invoke.invokeApplication(Invoke.APP_TYPE_MESSAGES, 
       new MessageArguments(MessageArguments.ARG_NEW, "", "testing", 
         "just trying to test menu item from compose screen")); 
    } 
} 
: 메시지 편집 컨텍스트의 ApplicationMenuItem에서

답변

관련 문제