gpt4 book ai didi

java - 内部类中的非最终变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:35:01 24 4
gpt4 key购买 nike

我尝试动态创建一个 ImageView,我想将此 imageView 作为参数传递给监听器中的方法。

            ImageView imageView1 = new ImageView(LookActivity.this);

imageView1.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
detectLocationAndShowPopUp(imageView1);
return true;
}
})

但是我出现了以下错误:
不能在不同方法中定义的内部类中引用非最终变量 imageView1。

我不想将 imageView 声明为最终的。我该如何克服这个问题?

最佳答案

您可以制作 imageView1 的副本,然后在监听器中使用该副本:

ImageView imageView1 = new ImageView(LookActivity.this);
final ImageView imageView2 = imageView1;

imageView1.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
detectLocationAndShowPopUp(imageView2);
return true;
}
});

在 Sam 发表评论后,我将代码更改为:

ImageView imageView1 = new ImageView(LookActivity.this);

imageView1.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
detectLocationAndShowPopUp((ImageView) view);
return true;
}
});

关于java - 内部类中的非最终变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15028156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com