AndEngine和Android:OnAreaTouched in for循环不保持唯一

时间:2011-04-30 23:32:35

标签: java android andengine

我第一次使用andengine for android。我正在创建一个简单的文本列表,只需要能够调用相同的方法,但发送一个不同的变量,根据它在列表中的位置。该列表不需要滚动而且很短。我决定使用简单的文本并创建一个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 :(得分:0)

该代码是否编译?如同这一行:

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

您正在引用非最终循环变量x。