【问题标题】:Libgdx error clickListenerLibgdx 错误 clickListener
【发布时间】:2015-01-29 02:28:13
【问题描述】:

我有 5 个按钮,希望每个按钮不能打印数字 1、2、3、4、5。但每个按钮只打印“5”。我的代码有什么问题吗?还是它在 libgdx 上的错误?我使用 libgdx v1.2.0

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());
}

【问题讨论】:

  • 调用 beli(j); 中的 j 是什么?你还没有包含定义j的源代码
  • 抱歉打错了我的意思是“我”
  • 这是 Java 吗?然后你应该包含java 标签。

标签: java libgdx clicklistener


【解决方案1】:

在 for 循环中使用 int 而不是 Integer。您的所有点击侦听器都引用了 Integer 的同一个实例,因为它是一个对象而不是原语。

为了代码的明确性,我会将变量复制到最终的 int 变量并将其用于单击侦听器,因此绝对清楚每个单独的 int 都使用。

final int index = i;
...
//use index in the ClickListener instead of i 

【讨论】:

    【解决方案2】:

    试试这个简单的例子:

    ...// 更改代码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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-27
      • 2015-09-02
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-23
      相关资源
      最近更新 更多