2013-06-20 1 views
0

Dialog에서 예 또는 아니요 버튼을 클릭하면 어떻게되는지 수동으로 설정하려고합니다. 내 코드가있다.설정 방법 대화 상자 예, 아니요 버튼 동작

Dialog D = new Dialog(Dialog.D_YES_NO, "Comprar Recarga", 0, Bitmap.getBitmapResource("icon.png"),Dialog.EDITABLE); 
    D.add(List_tipo); 
    D.add(List_valor); 
    D.add(List_num_conta); 
    D.show(); 
    if(D.getSelectedValue()==Dialog.OK) 
    { 

    int Recarga, num_conta; 
    Recarga = Integer.parseInt(List_valor.getChoice(List_valor.getSelectedIndex()).toString()); 
    num_conta = Integer.parseInt(List_num_conta.getChoice(List_num_conta.getSelectedIndex()).toString()); 
    int tipo = List_tipo.getSelectedIndex(); 
    if(tipo==0) 
    { 
     recargas_existentes.comprar_mcel(Recarga, num_conta); 
    } 
    if(tipo==1) 
    { 
     recargas_existentes.comprar_vodacom(Recarga, num_conta); 
    } 
    if(tipo==2) 
    { 
     recargas_existentes.comprar_bla_bla(Recarga, num_conta); 
    } 

    } 

답변

2

당신은 대화의 doModal() 메소드를 사용할 수 있어야합니다 (죄송합니다 제가 영어로 좋은 아닙니다). 당신이 doModal을 사용할 수없는 경우 https://stackoverflow.com/a/10681171/2415100

,이 시도 :

public class ProceedPrompt extends PopupScreen 
{ 
    int response = Dialog.NO; 

    private ProceedPrompt(String message) 
    { 
     super(new VerticalFieldManager()); 
     LabelField labelField = new LabelField(message, USE_ALL_WIDTH | DrawStyle.HCENTER); 
     add(labelField); 

     ButtonField button_proceed = new ButtonField(
       "Proceed", USE_ALL_WIDTH | FIELD_HCENTER) 
     { 
      protected boolean navigationClick(int status, int time) 
      { 
       response = Dialog.YES; 
       close(); 
       return true; 
      } 
     }; 

     ButtonField button_cancel = new ButtonField(
       "Cancel", USE_ALL_WIDTH | FIELD_HCENTER) 
     { 
      protected boolean navigationClick(int status, int time) 
      { 
       response = Dialog.NO; 
       close(); 
       return true; 
      } 
     }; 

     add(button_proceed); 
     add(button_cancel); 
    } 

    public static int doModal(String s) 
    { 
     ProceedPrompt prompt = new ProceedPrompt(s); 
     UiApplication.getUiApplication().pushModalScreen(prompt); 
     return prompt.response; 
    } 

} 

그런 다음

int i = ProceedPrompt.doModal("Did this work?"); 
+0

감사하지만 doModal (콜)의 BBOS은 여기

좋은 예입니다 7.1, 내 응용 프로그램은 BBOS5에서 실행해야합니다. 다른 어떤 sugestion (미안 iam는 영어로 좋지 않다) –

+0

아하는 sligtly하게 나쁘게 그러나 그렇게 나쁘지 않다. PopupScreen을 확장하는 클래스를 생성하고 응답 (1,2,3 등)에 대한 로컬 변수를 저장할 수 있습니다. 해당 화면을 누르고 팝업이 나타나면 응답을받습니다. – Kevin

+0

흠, 나는 그것을 시도 할 것이다 ... Iam은 Blackberry 프로그래밍에서 새로워졌다. 그럼 PopupScreen을 확장 한 클래스의 예가 있습니까? 검색을 시작하기 전에 확인하고 싶습니다 ... 고맙습니다. (죄송합니다 iam 영어로 좋지 않음) –