从匿名函数中获取变量值,最终不起作用

时间:2011-07-24 05:53:52

标签: android

我正在尝试通过按钮点击将我在外部范围内的值发送到我的函数 但是当我在调试模式下运行时,我看到变量的值是空的,尽管在构建按钮期间它有一个值。这是我的代码:

try 
    {
        String name = album.getString("name");
        final String albumId = album.getString("albumID");
        Button btnAlbum = new Button(this);
        btnAlbum.setText(name);
        btnAlbum.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));

        btnAlbum.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                GetImages (albumId);
            }
        });

        albumHolder.addView(btnAlbum);
    } 

所以我的意思是变量:“albumId”,我试图传递给click事件的函数。

忘了提到我的函数是在for循环中调用的......

1 个答案:

答案 0 :(得分:1)

我不会在匿名函数中使用局部变量。尝试使用类字段的引用,例如yourActivity.this.albumID

如果你需要为每个小部件保存一些数据,你可以在视图上使用setTag来保存一个对象,并在你的回调上使用getTag来检索它。