我有一个表并添加了所有按钮,下面是按钮代码,重复制作level0 - 9按钮。当我单击按钮时,它会将其编号保存到首选项(首选项)并转到下一个屏幕,但所有按钮也将最后一个数字(10)保存到首选项(首选项)中。我该如何改进呢?
for (level = 0; level < 10;level++) {
levelbutton[level].getLabel().setFontScale(1 * witdh / 540, 1 * height / 960);
levelbutton[level].addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
prefs.putInteger("Level",level);
prefs.flush();
((Game) Gdx.app.getApplicationListener()).setScreen(basicGame);
}
});
leveltable.add(levelbutton[level]).width(170*witdh/540).height(80*height/960);
leveltable.row();
}
答案 0 :(得分:0)
具有name
数据成员的Actor类,可用于标识。您可以根据自己的要求使用它。
for (level = 0; level < 10;level++) {
levelbutton[level].getLabel().setFontScale(1 * witdh / 540, 1 * height / 960);
levelbutton[level].setName(String.valueOf(level));
levelbutton[level].addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
Actor target = event.getTarget();
String targetName = target.getName();
if(targetName !=null) {
int levelNum=Integer.parseInt(targetName);
prefs.putInteger("Level",levelNum);
prefs.flush();
((Game) Gdx.app.getApplicationListener()).setScreen(basicGame);
}
}
});
leveltable.add(levelbutton[level]).width(170*witdh/540).height(80*height/960);
leveltable.row();
}
修改强>
是getListenerActor()
是更好的选择,它会返回附加的侦听器角色。
target = event.getListenerActor();