2017-01-14 4 views
1

Я пытаюсь удалить placeholder-text я помещал в моих TextField (инструкции и т.д.), когда пользователь нажимает на них, но я получаю сообщение об ошибке:Libgdx: слушать нажмите на TextField

com.badlogic.gdx.scenes.scene2d.ui.TextField is not an enclosing class

Мой код:

final TextField searchField = new TextField("Who are you looking for?", newSkin); 
       searchField.setFocusTraversal(false); 
       searchField.setTextFieldListener(new TextField.TextFieldClickListener() { 
        @Override 
        public void clicked(InputEvent event, float x, float y) { 
         super.clicked(event, x, y); 
         searchField.clear(); 
        } 
       }); 

Я не уверен, что я делаю неправильно.

+0

Вы помещаете новый TextField.TextFieldClickListener, которого не существует. – Tenfour04

+0

@ tenfour04, но это в api, если у Google это. И появляется с помощью intellisense в студии Android. Можете ли вы, пожалуйста, помочь мне, как проверить клик на текстовое поле? Обычный прослушиватель кликов не работает. –

+0

Извините, моя ошибка. Причина, по которой вы не можете создать экземпляр из класса TextField, заключается в том, что это не статический класс. Используйте 'searchField' вместо' TextField' при создании экземпляра, чтобы вы создавали экземпляр объекта вместо объекта. – Tenfour04

ответ

1

Проблема в том, что вы испортили TextField.TextFieldListener и TextField.TextFieldClickListener.

В вашем коде вы хотите использовать setTextFieldListener, но с параметром TextFieldClickListener, поэтому компилятор не может его правильно решить. Вы можете просто использовать ClickListener вместо:

searchField.addListener(new ClickListener() { 
     @Override 
     public void clicked(InputEvent event, float x, float y) { 
      super.clicked(event, x, y); 
      searchField.setText(""); 
     } 
    }); 

Кроме того, заметьте, что вы должны установить пустую строку в качестве text'cos clear() method используется для:

Removes all actions and listeners on this actor.

и это, безусловно, не то, что вы ищут)

+0

Я уверен, что это первое, что я пробовал, и он не работал. Я снова попробую, чтобы убедиться! –

+0

не забудьте удалить 'setTextFieldListener' так, как он есть в вашем фрагменте. В противном случае он удалит всех остальных слушателей. – Enigo

+0

@iQue, так вы это проверили? Мне действительно интересно) – Enigo

Смежные вопросы