因此,我正在为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