我在這裏面對的一個愚蠢問題的種類...基本上我在For循環中,並在此循環中,我總是調用一個函數來製作一個按鈕。但在這個函數中,我想通過循環迭代器,因爲它正在改變區分按鈕。但是,然後它告訴我我需要使循環迭代器「最終」,這意味着它不會改變!Java - 獲取循環迭代器到循環內的函數?
那麼我的問題會更有意義一些骨架代碼:
for(int i = 0; i < appList.size(); i++) {
//some other stuff including creating the below button 'btn'
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//set some attribute based on i
//but when I do this it only sets based on the greatest value of i (!)
}
});
}
咩有點傻問題,我知道...我是新來的Java,但!
乾杯。
的評論說,你將設置基於i *使用的最大價值我*似乎不準確的屬性。由於答案中缺少關鍵字'final',因此您無法編譯包含代碼段的代碼。不過,您可能已經將整數包裝在最終的單個元素數組中,並且會得到您描述的行爲。 – Atreys 2011-06-14 15:37:04