因此,我正在爲Eclipse 4.0編程一個簡單的計算器,我正在嘗試對我的代碼進行流式處理,並儘可能簡化代碼。我試圖清理的地方是我的findViewById()。因爲我有按鈕0-9實例我有一個看起來像這樣的代碼十條線長塊:可以/我應該編輯R.java文件。如果是這樣,怎麼樣?
b0 = (Button) findViewById(R.id.b0);
b1 = (Button) findViewById(R.id.b1);
...
b9 = (Button) findViewById(R.id.b9);
正如你所看到的這個東西只是乞求一個for循環。所以我想做的是做兩個數組。在活動的一個實例變量數組它包含所有的數字鍵盤按鈕實例變量:
private Button[] numberPad = {b0,b1,b2,b3,b4,b5,b6,b7,b8,b9};
,然後在R.java文件中的ID類另一個數組保存所有按鈕的ID變量會看像這樣:
private static final int[] numberPad = {b0,b1,b2,b3,b4,b5,b6,b7,b8,b9};
的sooo我可以用這個循環減少十行按鈕實例的兩個:
for(int i = 0; i < numberPad.length; i++)
numberPad[i] = (Button) findViewById(R.id.numberPad[i]);
當我鍵入了它的罰款,但WH我去保存它會自動恢復到它的原始形式。我沒有看到這個代碼有什麼問題。據我所知,它不會產生任何錯誤。爲什麼我不能以這種方式編輯R.java文件?有沒有辦法?我是不是該?
看看http://stackoverflow.com/questions/3545196/android-programatically-iterate-through-resource-ids – Kennet