gpt4 book ai didi

java - 在Android中访问内部类中的变量

转载 作者:行者123 更新时间:2023-12-01 11:45:18 25 4
gpt4 key购买 nike

我正在尝试使用数据库中的数据生成一组按钮。但点击时我遇到以下错误

Variable 'i' is accessed from within the inner class, needs to be declared final,

由于 i 的值随着循环的进行而变化,因此我无法将其设置为最终值,

footnoteBtns[i].setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

footnote = myDbHelper.getFootnote(chapterNumber, translationList.get(i).get("transNo"));

Popup();
}
});

最佳答案

您可以添加一个最终变量并设置为 i:

final int j = i;

然后在重写的 onClick 方法中使用该方法。

您必须这样做的原因是 onClick 是在另一个时间点调用的,而不是直接在 for 循环 -> 异步内部调用。因此,您需要确保清楚在稍后调用的方法中应使用哪个值。这就是为什么变量需要是最终的。

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

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