我希望此代码部分在每个按钮上设置一个onclick侦听器(我已经用另一种方法制作了这些按钮),并且在单击它们时将其“编号”或ID保存(到文件中)。我知道如何保存文本,但是当我尝试保存“ l”变量时,它将保存其最后一个值,而不是创建时的值。我想不出任何其他解决方案。

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

最佳答案

在循环体内声明最终变量:

for ( int ll = 0; ll < filea.length; ++ll )
{
   final int l = ll;   // Use this in the listener.

   // Rest of loop body.
}

09-10 06:19
查看更多