我正在編寫一個Android應用程序,其中我有幾個按鈕放在網格中。我想設置每個按鈕的onclick方法,所以我寫了這個:我想引用在不同的方法中定義的內部類中的非最終變量
for (int i = 0; i < button.length; i++) {
for (int j = 0; j < button[0].length; j++) {
button[i][j].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
press(i, j);
}
});
}
}
其中press(int i, int j)
在其他地方實施。我得到錯誤,「不能引用一個非最終變量我在一個不同的方法中定義的內部類中」。
所以,現在我只是寫出來,這樣每個函數:
button[0][0].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
press(0, 0);
}
});
button[0][1].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
press(0, 1);
}
});
// more like this...
這工作,但似乎很傻。有沒有更好的辦法?
「用不同的方法定義「似乎不相關? – 2012-03-04 02:36:33
add final int ii = i;和final int jj = j;在調用setOnClickListener之前 – 2012-03-04 07:47:10