2011-09-13 12 views
0

は私がカスタムダイアログのように作るように:私は、「表示ボタン」と「キャンセルボタン」のアクションを設定するにはどうすればよいこのカスタムダイアログのボタンのアクションを設定する方法は?

public class CustomDialog extends Dialog { 
    public CustomDialog(String s) { 
    super(s, new String[] {"View","Cancel"}, new int [] {1,2}, 1,   Bitmap.getPredefinedBitmap(Bitmap.EXCLAMATION), Manager.FOCUSABLE); 

    } 

? 私は何かを探して見つけられませんでした。 私を助けてください!

答えて

0

これは

import net.rim.device.api.ui.component.ButtonField; 
import net.rim.device.api.ui.component.Dialog; 
import net.rim.device.api.ui.container.HorizontalFieldManager; 

public class CustomAlertDialog extends Dialog { 


    public CustomAlertDialog() { 
     super("Your Custom message for Dialoug" , null, null, Dialog.DISCARD, null, Dialog.VERTICAL_SCROLL); 

     HorizontalFieldManager hfm = new HorizontalFieldManager(); 

     ButtonField view = null; 

     view = new ButtonField("view") { 
      protected boolean navigationClick(int status, int time) { 
      // do what ever you want 
      return true; 
      } 

      protected boolean keyChar(char key, int status, int time) { 
      // do what ever you want 
      return true; 
      } 
     }; 

     ButtonField cancel = null; 
     cancel = new ButtonField("Cancel") { 
      protected boolean navigationClick(int status, int time) { 
      // do what ever you want 
      return true; 
      } 

      protected boolean keyChar(char key, int status, int time) { 
      // do what ever you want 
      return true; 
      } 
     }; 
    hfm.add(view); 
    hfm.add(cancel); 

    this.add(hfm); 
    } 
} 
+0

ありがとう、このコードは非常に便利です。しかし、私は "Cancel Button"のaction close()を使用しています。**をダブルクリックすると**ダイアログが閉じます。私はSimulatorで作業しました。なぜ説明できますか? –

+0

ああ、シミュレータの問題ですが、シミュレータを変えてうまくいきます。 :) –

1

..あなたを助けるかもしれない...このコードをチェックアウトはDialog.setDialogClosedListener()を使用してCustomDialogDialogClosedListenerを取り付けます。ユーザーがいずれかのボタンをクリックすると、DialogClosedListener.dialogClosed()メソッドが呼び出され、ボタンのインデックスはchoiceパラメーターとして渡されます。

+0

はい、ありがとうございます –

+0

これは、選択肢のオブジェクト配列を指定すると機能しますが、カスタムボタンフィールドを使用している場合、返される 'choice'は常に-1です。 – azdev

関連する問題