我希望这个代码部分在每个按钮上设置一个onclick监听器(我已经在另一个方法中创建了这些按钮),当它们被点击时,它会保存(到一个文件)它的"数字&# 34;或者身份证。我知道如何保存文本,但是当我尝试保存文本时,我会知道如何保存文本。变量它保存了它的最后一个值,而不是它创建时的值。我无法想到任何其他解决方案。
for(final int l[]={0}; l[0] < filea.length; l[0]++ )
{
Button button = (Button) findViewById(l[0]);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
//
//save method here
}
});
答案 0 :(得分:3)
在循环体内声明最终变量:
for ( int ll = 0; ll < filea.length; ++ll )
{
final int l = ll; // Use this in the listener.
// Rest of loop body.
}
答案 1 :(得分:-1)
你的循环结构有点奇怪(为什么不使用你循环的变量l而不是l数组结构 - 如果你想在循环之外使用total只使用filea.length)。
当你的回调被调用时,索引0中的数组值已经达到最大值。在循环中使用button.getId()代替。