1

各行でボタンクリックイベントを取得したい。それを取得する方法?. このリンクを試してみましたが、各行にボタンが 1 つしかない場合に機能します。しかし、私の場合、各行に複数のボタンがあります。10,20 と 11,21 は私のボタンです。

ここに画像の説明を入力

上記のリンクの RowManager クラスで、次のコードを追加しました-

button = new ButtonField("1" + index, ButtonField.CONSUME_CLICK);
button.setCookie(new Integer(index));
button.setFont(textFont);
add(button);


button1 = new ButtonField("2" + index, ButtonField.CONSUME_CLICK);
button1.setCookie(new Integer(index));
button1.setFont(textFont);
add(button1);

StackScreen クラスでは、public void fieldChanged(Field field, int context) で、クリックされたボタンの名前を取得する方法を教えてください。

4

1 に答える 1

2

自分で解決 -

public static int v=0;
button = new ButtonField("1" + index, ButtonField.CONSUME_CLICK);
button.setCookie(new Integer(v+1));  //set cookie
button.setFont(textFont);
add(button);
v=v+1; //increment the value of v

button1 = new ButtonField("2" + index, ButtonField.CONSUME_CLICK);
button1.setCookie(new Integer(v+1));
button1.setFont(textFont);
add(button1);
v=v+1;

と -

 public void setChangeListener(FieldChangeListener listener) {
     // only the button field supports change listeners
     button.setChangeListener(listener);
     button1.setChangeListener(listener);
  }

次に、StackScreen クラスで -

public void fieldChanged(Field field, int context) {
       Object f=field.getCookie();
       Dialog.alert("Button " +f);
 }
于 2013-03-22T09:55:01.030 に答える