for (Integer i = 1; i <=5 ; i++){
tabeldalam=new Table(skin);
tabeldalam.row();
tabeldalam.add(new Label("GAmbar :", skin)).height(100).width(100);
tabeldalam.row();
tabeldalam.add(new Label("Harga",skin)).height(30).width(100);
tabeldalam.row();
TextButton nextbutton = new TextButton("Beli",skin);
nextbutton.setWidth(100);
nextbutton.setHeight(20);
nextbutton.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
beli(i);
}
});
tabeldalam.add(nextbutton).height(20).width(100);
tabelLuar= new Table(skin);
tabelLuar.add(tabeldalam).width(100).height(150);
}
private void beli(Integer i){
text2.setText(i.toString());
}
答案 0 :(得分:0)
试试这个简单的例子:
... // 更改代码 addListener :
nextbutton.addListener(new ClickListenerOverflow(i) {
@Override
public void clicked(InputEvent event, float x, float y) {
beli(n);
}
});
... //
在您的班级中添加此代码:
private class ClickListenerOverflow extends ClickListener{
int n;
public ClickListenerOverflow(int n){
this.n = n;
}
}
当您点击通话beli (i)
时,i
则其值为5,后者赢得了for
。
答案 1 :(得分:0)
为for循环使用int而不是Integer。所有单击侦听器都引用相同的Integer实例,因为它是一个对象而不是一个原语。
对于代码非歧义,我会将变量复制到最终的int变量,并将其用于click侦听器,因此绝对清楚的是每个变量都使用单独的int。
final int index = i;
...
//use index in the ClickListener instead of i