Как динамически добавить текстовое поле после нажатия кнопки? - PullRequest
0 голосов
/ 02 апреля 2011

Может ли кто-нибудь указать мне правильное направление здесь.Я хочу сначала сказать 2 текстовых поля, тогда пользователь сможет нажать кнопку «Добавить», и будут отображены еще 2 текстовых поля (это должно быть динамическим, так как пользователь может нажать один или 100 раз, например)

1 Ответ

5 голосов
/ 02 апреля 2011

Так как это калитка, это должна быть Java ... Я бы пометил это, но мой аккаунт для этого новый ...

Поместите ваши исходные модели Textfields в один объект-обертку и добавьте его всписок (таким образом, содержащий только один элемент) и отобразить этот список в ListView.В событии onClick вашей кнопки добавьте еще один из этих объектов-оболочек в свой список и обновите ListView.

Что-то вроде

public class TwoTextFields {
    private IModel textFieldOne;
    private IModel textFieldTwo;

    [... constructor, getters setters here  ...]

и

public class MyPanel extends Panel {

   private List<TwoTextFields> list = new ArrayList<TwoTextFields>();

   public MyPanel(String id) {
       super(id);
       add( New ListView<TwoTextFields>("list", list) {

           @Override
           protected populateItem(Item<TwoTextFields> item) {
               add( new TextField("fieldOne", new PropertyModel(item, "textFieldOne");
               add( new TextField("fieldTwo", new PropertyModel(item, "textFieldTwo");
           }
      });
      add( new Button("button) {

           @Override
           protected void onClick() {
               list.add(new TwoTextFields());
           }
      });
}

Я не знаю, компилируется ли это ... Это просто для того, чтобы дать вам идею, я не хотел запускать затмение для этого ...

...