AndEngine и Android: OnAreaTouched в цикле for не остается уникальным - PullRequest
0 голосов
/ 01 мая 2011

Я впервые использую андегин для андроида. Я создаю простой список текста, который просто должен иметь возможность вызывать один и тот же метод, но отправлять другую переменную в соответствии с его положением в списке. Список не нуждается в прокрутке и является коротким. Я решил использовать простой текст и создал цикл for, чтобы сделать их для меня из массива строк.

Цикл работает и создает текст должным образом, но при касании все они выполняют последнее назначение касания вместо соответствующего.

Нужно ли ссылаться на код onAreaTouched или он сохраняется где-то после регистрации сенсорной области.

вот оно:

  for(x =1; x<base.locale.length;x++){
                 textLoc[x-1]=new Text(10,(110+(x*30)),base.getmFont(),
                                        base.locale[x],HorizontalAlign.CENTER){
                    @Override
                    public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {

                        base.moveListen(Integer.toString(x));
                loadNewScene();
                        return true;
                    }

                };

              scene.getLastChild().attachChild(textLoc[x]);
              scene.registerTouchArea(textLoc[x]);

            }

1 Ответ

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

Этот код компилируется?Как в этой строке:

base.moveListen (Integer.toString (x));

вы ссылаетесь на не финальную переменную цикла x.

...