Установка и удаление растрового изображения для кнопок onfocus и onUnfocus - PullRequest
0 голосов
/ 10 мая 2011

Как разместить битовые поля в Менеджере, в то время как некоторые кнопки на нем получают фокус. Я попробовал следующий код, но он не работает.

когда «кнопка» получает фокус, мне нужно добавить «поле1» рядом с кнопкойв Vfm.

button = new ImgButtonField("res/images/trans.png", Field.FOCUSABLE){
            protected void onFocus(int direction) {  
              Vfm.insert(field1, button.getIndex()) ;
                   super.onFocus(direction);
                   invalidate();
                }
             protected void onUnfocus() {
                    Vfm.delete(field1);
                   super.onUnfocus();
                   invalidate();
             }      
        };

Ответы [ 2 ]

0 голосов
/ 10 мая 2011

Попробуйте разместить NullField в менеджере в качестве заполнителя. NullField не будет виден. В фокусе вы можете заменить это NullField на field1.

   NullField myNullField = new NullField(); 
   button = new ImgButtonField("res/images/trans.png", Field.FOCUSABLE){
                protected void onFocus(int direction) {  
                       Vfm.replace(myNullField, field1) ;
                       super.onFocus(direction);
                       invalidate();
                    }
                 protected void onUnfocus() {
                       Vfm.replace(field1, myNullField);
                       super.onUnfocus();
                       invalidate();
                 }      
            };
   //add fields to Vfm, including the myNullField placeholder.
0 голосов
/ 10 мая 2011

Попробуйте использовать добавление вместо вставки, пример кода, который я пробовал

ButtonField button,button1;
LabelField field1;
VerticalFieldManager vfm;
public MyScreen()
{        
    // Set the displayed title of the screen       
    setTitle("MyTitle");
    vfm=new VerticalFieldManager();
    field1=new LabelField("Sample");
    button=new ButtonField("Sample"){

        protected void onFocus(int direction) {  
                vfm.add(field1);
                 super.onFocus(direction);
                 invalidate();
              }
           protected void onUnfocus() {
                  vfm.delete(field1);
                 super.onUnfocus();
                 invalidate();
           }      

    };
    button1=new ButtonField("Sampl1");
    this.add(button1);
    this.add(button);
    this.add(vfm);

}

С уважением Ракеш Шанкар.П

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...